数据结构第5二叉树.pptxVIP

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 树和二叉树 Tree and Binary Tree 主讲:顾为兵 (3);§6.3 遍历二叉树和线索二叉树 6.3.1 先序、中序和后序遍历 6.3.2 算术表达式的二叉树表示 6.3.3 二叉树的运算举例 6.3.4 按层次遍历二叉树 6.3.5 创建二叉链表 6.3.6 线索二叉树;6.3.6 线索二叉树 一、线索二叉树的概念 二、线索化 三、遍历线索二叉树;一、 线索二叉树的概念;A;线索二叉树类型定义: typedef struct BiTreNode { ElemType data; struct BiThrNode *lchild, *rchild; struct BiThrNode *pred, *succ; }BiThrNode, *BiThrTree; ;A;;;;6.3.6 线索二叉树 一、线索二叉树的概念 二、线索化 三、遍历线索二叉树;二、线索化 所谓线索化,就是在已知二叉链的前提下,填写每个结点左线索pred域和右线索succ域 若要建立中(先、后)序线索, 则在中(先、后)序遍历过程中完成线索化操作; ;线索化的算法原理: 以中序线索化为例,对二叉树做中序遍历, 设: p指针指向当前正在访问的结点; pre指向p的中序前驱, 做以下操作: pre-succ=p; p-pred=pre; pre=p;;void InOrderThreading(BiThrTree H, BiThrTree T) { // P126算法6.9, 中序线索化二叉树T,用H返回头指针 H=new BiThrTree; //申请头结点 H-lchild=T; H-rchild=NULL; if(!T) H-pred=H-succ=H; //空二叉树 else{ pre=H; InThreading(T, pre); pre-succ=H; H-pred=pre; //此时,pre指向中序序列的最后一个结点 }//else } //InOrderThreading;void InThreading(BiThrTree p, BiThrTree pre) { //P129算法6.10, 对二叉树p做中序遍历,填写左、右线索 if (!p) return ; //空二叉树 InThreading(p-lchild, pre); //线索化左子树 pre-succ=p; p-pred=pre; pre=p; InThreading(p-rchild, pre); //线索化右子树} }//InThreading;6.3.6 线索二叉树 一、线索二叉树的概念 二、线索化 三、遍历线索二叉树;;;;第六章 树和二叉树 目录 §6.1 树的定义和基本术语 §6.2 二叉树 §6.3 遍历二叉树和线索二叉树 §6.4 树和森林 §6.5 哈夫曼树及其应用 ;6.4.1 树的存储结构 1. 双亲表示法 2. 孩子表示法 3. 带双亲的孩子链表 4. 孩子兄弟表示法 6.4.2 树、森林与二叉树的关系 1. 树转换成二叉树 2. 森林转换成二叉树 3. 二叉树转换成森林 6.4.3 树和森林的遍历;A;;A;typedef struct CTNode { //孩子结点 int child; struct CTNode *next; } CTNode,*Childptr; typedef struct { //表头结点 TElemType data; ChildPtr firstchild; } CTBox; typedef struct { CTBox nodes[maxsize];int forest[5]; int n, root,ntree; //结点数和根下标 } CTree;;A;T;typedef struct CTNode { //孩子结点 int child; struct CTNode *next; } CTNode,*Childptr; typedef struct { //表头结点 TEle

文档评论(0)

kay5620 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8001056127000014

1亿VIP精品文档

相关文档