- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树和二叉树第1部分
void InOrder ( BinTree T ) { stack S; InitStack( S ); //递归工作栈 BinTreeNode *p = T; //初始化 while ( p != NULL || !StackEmpty(S) ) { if ( p != NULL ) { Push(S, p); p = p-leftChild; } else if ( !StackEmpty(S) ) { //栈非空 Pop(S, p); //退栈 访问p-data; //访问当前的根 p = p-rightChild; }//if }//while return ok; } a b c d e 遍历二叉树是以一定规则将二叉树中结点排列成一个线性序列,实质上对一个非线性结构进行线性化的操作,使每个节点(除去第一个和最后一个)在这些线性序列中有且仅有一个直接前驱和直接后继。 二叉链表作为存储结构,只能找到节点的左右孩子的信息,而不能直接得到节点所在序列中的前驱和后继信息,我们只有在按某种次序进行遍历的动态过程中才能得到。 如何保存这种遍历过程中得到的信息? 4. 线索二叉树 (Threaded Binary Tree) 一个最简单的办法是在每个节点上增加两个指针pre和suc,分别指示节点在某种遍历次序下的前趋和后继结点的信息(这种附加的指针称为线索)。 另一方面,在有n个节点的二叉链表中必定存在n+1个空链域。 线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。 LeftThread=0时,LeftChild指向左子女 LeftThread=1时, LeftChild指向前驱 RightThread=0时,RightChild指向右子女 RightThread=1时,RightChild指向后继 LeftChild RightChild data LeftThread RightThread 线索二叉树 (Threaded Binary Tree) 结点结构 这是一棵中序线索二叉树。建立线索二叉树,或者说对二叉树线索化,实质上就是遍历一棵二叉树。在遍历过程中,访问结点的操作是检查当前的左、右指针域是否为空,若为空,将它们改为指向前驱结点或后续结点的线索。 第六章 树和二叉树 树的概念和基本术语 二叉树的性质 二叉树遍历 哈夫曼树 树形结构是一类重要的非线性数据结构,其中以二叉树最为常用。直观看来,树是以分支关系定义的层次结构。 可用树状结构来描述的数据模型在客观世界中广泛存在: 对弈问题; 2. 文件系统和数据库系统一般都采用树(特别是B树)或者堆(一棵特殊的树)结构来组织数据存储,以保证排序和检索的效率; 3. 哈夫曼树及哈夫曼编码。 树的定义 树是一类重要的非线性数据结构,是以分支关系定义的层次结构。 定义 定义:树(tree)是n(n0)个结点的有限集T,其中: 有且仅有一个特定的结点,称为树的根(root) 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)。 特点: 树中至少有一个结点——根 树中各子树是互不相交的集合 A 只有根结点的树 A B C D E F G H I J K L M 有子树的树 根 子树 其中:A是根;其余结点分成三个互不相交的子集, T1={B,E,F,K,L}; T2={C,G}; T3={D,H,I,J,M}, T1,T2,T3都是根A的子树,且它们本身也分别是一棵树 树的基本术语 1层 2层 4层 3层 height= 4 A C G B D E F K L H M I J 结点 结点的度 叶结点 分支结点 子女 双亲 兄弟 祖先 子孙 结点层次 树的深度 树的度 森林 结点A的度:3 结点B的度:2 结点M的度:0 叶子:K,L,F,G,M,I,J 结点A的孩子:B,C,D 结点B的孩子:E,F 结点I的双亲:D 结点L的双亲:E 结点B,C,D为兄弟 结点K,L为兄弟 树的度:3 结点A的层次:1 结点M的层次:4 树的深度:4 结点F,G为堂兄弟 结点A是结点F,G的祖先 A C G B D E F K L H M I J 二叉树 (Binary Tree) 定义 五种形态 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加
您可能关注的文档
最近下载
- 成人胃残余量超声监测技术规范.docx VIP
- 金属冶炼企业安全生产管理人员:事故应急处置和案例分析.ppt VIP
- 采购降本推进计划.pdf VIP
- 定制产品合同协议.docx VIP
- 恒大地下车库VI标识标牌标准化方案(超豪华版)恒大地产集团.pdf VIP
- 【教学课件】《人体对外界环境的感知》(人教).ppt VIP
- 滚动轴承外球面球轴承和偏心套外形尺寸.pdf VIP
- 第一单元第四课《上学路上》教案 湘美版(2024)一年级上册.doc VIP
- 突发事件应急预案.doc VIP
- 2024年03月上海市公安局浦东分局2024年上半年度招考文员笔试上岸试题历年典型考题与考点剖析附带答案解析.docx VIP
文档评论(0)