第五章 树与二叉树(二).ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 树与二叉树(二)

* 4、子女指针表示 一个合理的想法是在结点中存放指向每一个子女结点的指针。但由于各个结点的子女数不同,每个结点设置数目不等的指针,将很难管理。 为此,设置等长的结点,每个结点包含的指针个数相等,等于树的度(degree)。 这保证结点有足够的指针指向它的所有子女结点。但可能产生很多空闲指针,造成存储浪费。 * 等数量的链域 A B C D E F G data child1 child2 child3 childd A B C D E F G ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 空链域2n+1个 * 5、子女-兄弟表示 也称为树的二叉树表示。结点构造为: firstChild 指向该结点的第一个子女结点。无序树时,可任意指定一个结点为第一个子女。 nextSibling 指向该结点的下一个兄弟。任一结点在存储时总是有顺序的。 若想找某结点的所有子女,可先找firstChild,再反复用 nextSibling 沿链扫描。 data firstChild nextSibling * 树的子女 - 兄弟表示 data firstChild nextSibling A B C D E F G A B C D G F E * 树的二叉树表示 树的遍历 深度优先遍历 先根次序遍历 后根次序遍历 广度优先遍历 A B C E D A B C D E F G G F * A B C E D G F 树的先根次序遍历 当树非空时 访问根结点 依次先根遍历根的各棵 子树 树先根遍历 ABEFCDG 对应二叉树前序遍历 ABEFCDG 树的先根遍历结果与其对应二叉树 表示的前序遍历结果相同 树的先根遍历可以借助对应二叉树的前序遍历算法实现 * A B C E D G F 树的后根次序遍历 当树非空时 依次后根遍历根的各棵 子树 访问根结点 树后根遍历 EFBCGDA 对应二叉树中序遍历 EFBCGDA 树的后根遍历结果与其对应二叉树 表示的中序遍历结果相同 树的后根遍历可以借助对应二叉树的中序遍历算法实现 * 树的先根次序遍历的递归算法 template class T void TreeT:: PreOrder ( void (*visit) (BinTreeNodeT *t) ) { //以当前指针current为根, 先根次序遍历 if (!IsEmpty ()) { //树非空 visit (current); //访问根结点 TreeNodeT *p = current; //暂存当前指针 current = current-firstChild; //第一棵子树 while (current != NULL) { PreOrder (visit); //递归先根遍历子树 current = current-nextSibling; * } current = p; //恢复当前指针 } }; template class T void TreeT :: PostOrder (void (*visit) (BinTreeNodeT *t)) { //以当前指针current为根, 按后根次序遍历树 树的后根次序遍历的递归算法 * if ( ! IsEmpty () ) { //树非空 TreeNodeT *p = current; //保存当前指针 current = current-firstChild; //第一棵子树 while (current != NULL) { //逐棵子树 PostOrder (visit); current = current-nextSibling; } current = p; //恢复当前指针 visit (current); //访问根结点 } }; * 广度优先(层次次序)遍历 按广度优先次序遍历树的结果 ABCDEFG 遍历算法用到一个队列。 template c

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档