摘要: 如果一个节点没有子树,那就直接清除这个节点,这就是出口。 添加free函数: 测试程序如下: 现在我们插入的根节点是在栈上,而在释放时却用了delete。 我们的程序比较小,delete栈中的对象暂时没有体现出bug,但是大型程序这样做是不允许的。 改进GTreeNode.h文件如下: GTree. 阅读全文
posted @ 2018-09-22 20:01 周伯通789 阅读(273) 评论(0) 推荐(0)
摘要: 问题: 新插入节点的位置如何指定? 非线性结构无法通过下标指定位置。 插入操作代码流程: 当前的树是一棵空树的话,新节点就当做空节点来插入。不是空树就查找新节点的父节点。 在GTree.h中添加插入操作: 测试程序如下: 结果如下: 小结: 阅读全文
posted @ 2018-09-22 19:36 周伯通789 阅读(752) 评论(0) 推荐(0)
摘要: 第一种查找方式中,如果保存这个值的节点确实保存在树中,那么就将这个节点的指针返回,否则返回空。 第二种查找方式中,按节点查找,如果找到就返回这个节点的地址,没有找到就返回空。 具体的查找方式不能像链表那样,因为树是非线性结构。 树是递归定义的,与树相关的算法也是递归的。 例如:我们查找H,先查找根节 阅读全文
posted @ 2018-09-22 18:52 周伯通789 阅读(447) 评论(0) 推荐(0)
摘要: GTree是通用树结构。 每个节点都包含了指向父节点的指针。 添加GTreeNode.h文件: 添加GTree.h文件: 从上往下看是非线性的,从下往上看是线性的,也就是类似于链表结构,加入父节点指针后,我们就可以用一些链表的知识来处理树了。 在工程中这种方式使用很广泛。 阅读全文
posted @ 2018-09-22 18:16 周伯通789 阅读(181) 评论(0) 推荐(0)