上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 57 下一页
摘要: GTree和BTree中都有遍历相关的函数,因此,我们将这些遍历相关的函数放到Tree.h中,作为纯虚函数声明: 如下: BTree.h中添加遍历相关的函数: 测试程序如下: 结果如下: 阅读全文
posted @ 2018-09-24 10:06 周伯通789 阅读(218) 评论(0) 推荐(0)
摘要: 递归功能函数: 功能函数如下: degree的递归功能函数如下: 我们去掉了冗余代码,用数组和for循环的方式实现。 如果不用这个方式,将会出现两段相似的代码。 如下: 总的Btree.h如下: 测试程序如下: 结果如下: 阅读全文
posted @ 2018-09-24 09:19 周伯通789 阅读(247) 评论(0) 推荐(0)
摘要: BTree.h中添加删除操作: 测试程序如下: 结果如下: 添加清除操作: 小结: 阅读全文
posted @ 2018-09-24 08:29 周伯通789 阅读(553) 评论(0) 推荐(0)
摘要: 如果新节点指定的目标父节点已经有左孩子和右孩子了,这时插入就会失败,这就是和通用树不同的地方。 插入新结点时,需要指定插入位置。例如,左孩子或者右孩子位置。 不带位置参数的插入函数可以插入到任何位置。 BTreeNode实现了自己的工厂模式,如下所示: BTree.h添加插入函数: 测试程序如下: 阅读全文
posted @ 2018-09-23 19:42 周伯通789 阅读(1044) 评论(0) 推荐(0)
摘要: 先查找根节点元素值是不是9,不是的话就查找两个子树,这就是递归的过程。 返回第一个找到的结点。 添加查找函数: 阅读全文
posted @ 2018-09-23 18:55 周伯通789 阅读(924) 评论(0) 推荐(0)
摘要: BTree和BTreeNode之间是聚合关系,BTree需要聚合的使用BTreeNode。 BTreeNode要包含指向父节点的指针,方便工程应用。 二叉树也是容器类型,需要实现增删查。 先重构GTreeNode.h和TreeNode.h文件: 对Gtree.h也做一下重构,GTree中原来有这样的 阅读全文
posted @ 2018-09-23 18:12 周伯通789 阅读(323) 评论(0) 推荐(0)
摘要: 证明: 两种求e的方法分别是从上往下看和从下往上看。 阅读全文
posted @ 2018-09-23 14:50 周伯通789 阅读(187) 评论(0) 推荐(0)
摘要: 简化之后树节点中孩子的数量就少了,但是通用树形结构中每个节点可能有很多个孩子,这样简化之后的树还能描述通用的树形结构吗? 每个节点都有一个指向其第一个孩子的指针,每个节点都有一个指向其第一个右兄弟的指针。 任何的树形结构都能用“二杈”的方式表示,也就是用孩子兄弟表示法。 因此,我们的研究内容可以局限 阅读全文
posted @ 2018-09-23 14:17 周伯通789 阅读(248) 评论(0) 推荐(0)
摘要: 通用树结构是一种容器,里面装有数据元素,我们有遍历元素的需求。 非线性决定了树中的每个结点没有固定的编号方式。 将队列中队首的指针定义成遍历时的游标,根节点进入队列后,游标指向根节点。 队头元素弹出,队首的指针就指向了别的元素,这就相当于移动了游标。 添加遍历相关的程序: 测试程序如下: 结果如下: 阅读全文
posted @ 2018-09-23 13:32 周伯通789 阅读(634) 评论(0) 推荐(0)
摘要: 添加count函数: 测试程序如下: 结果如下: 添加求高度和度数的函数: 阅读全文
posted @ 2018-09-23 12:37 周伯通789 阅读(180) 评论(0) 推荐(0)
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 57 下一页