第六章树和二叉树分析.ppt

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

四、中序遍历算法的非递归描述 中序遍历示意图 何谓线索二叉树? 线索链表的遍历算法 如何建立线索链表? 6.8 哈 夫 曼 树 与 哈 夫 曼 编 码 最优树的定义 如何构造最优树 前缀编码 设树的存储结构为孩子兄弟链表 typedef struct CSNode{ Elem data; struct CSNode *firstchild; struct CSNode *nextsibling; } CSNode, *CSTree; int TreeDepth(CSTree T) { 1 if(!T) return 0; 2 else { 3 h1 = TreeDepth( T-firstchild ); 4 h2 = TreeDepth( T-nextsibling); 5 6 } 7 } // TreeDepth return(max(h1+1, h2)); 求树的深度的算法: 在中序遍历过程中修改结点的 左、右指针域,以保存当前访问结 点的“前驱”和“后继”信息。遍历过 程中,附设指针pre, 并始终保持指 针pre指向当前访问的、指针p所指 结点的前驱。 三、如何建立线索链表? // 已知一棵二叉树,将其线索化 // pre指向 p 的前驱,第一次值为NULL void InThreading(BiThrTree p) { if (p) {// 对以p为根的非空二叉树进行线索化 InThreading(p-lchild); // 左子树线索化 if (!p-lchild) // 建前驱线索 { p-LTag = Thread; p-lchild = pre; } if (!pre-rchild) // 建后继线索 { pre-RTag = Thread; pre-rchild = p; } pre = p; // 保持 pre 指向 p 的前驱 InThreading(p-rchild); // 右子树线索化 } // if } // InThreading A B C D if (A) { //InThreading(A) ,pre=NULL InThreading(A-lchild); // 左子树线索化 if (!A-lchild) // 建前驱线索 ,pre=C { A-LTag = Thread; A-lchild = pre; } if (!pre-rchild) // 建后继线索 { pre-RTag = Thread; pre-rchild = A; } pre = A; // 保持 pre 指向 p 的前驱 InThreading(A-rchild); } if (B) { //InThreading(B) ,pre=NULL InThreading(B-lchild); // 左子树线索化 if (!B-lchild) // 建前驱线索 { B-LTag = Thread; B-lchild = pre; } if (!pre-rchild) // 建后继线索 { pre-RTag = Thread; pre-rchild = B; } pre = B; // 保持 pre 指向 p 的前驱 InThreading(B-rchild); } A B C D NULL if (C) { //InThreading(C) ,pre=B InThreading(C-lchild); // 左子树线索化 if (!C-lchild) // 建前驱线索 { C-LTag = Thread; C-lchild = B; } if (!B-rchild) // 建后继线索 { B-RTag = Thread; B-rchild = C; } pre = C; // 保持 pre 指向 p 的前驱 InThreading(C-rchild); } //pre=C if (D) { //InThreading(D) ,pre=A

文档评论(0)

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

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

1亿VIP精品文档

相关文档