- 1、本文档共95页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二叉树的遍历----练习 结果为:1 2 4 5 3 1 2 3 4 5 6 7 二叉树的遍历----练习 结果为:1 2 4 5 3 6 1 2 3 4 5 6 7 二叉树的遍历----练习 结果为:1 2 4 5 3 6 7 1 2 3 4 5 6 7 二叉树的遍历----练习 结果为:1 2 4 5 3 6 7 1 2 3 4 5 6 7 自学内容 P70页 图5.14 三种遍历示意图 三种遍历算法除了访问根结点的次序不同外,其遍历的搜索路线是相同的。 遍历的结果最终把树形结构转化为线性结构。 三种遍历过程示意图例 a c b × - a b * c - b a * - c a b * c - - × a b c 虚线表示执行过程: 向下表示更深层的递归调用; 向上表示递归调用返回; 沿虚线记下各类符号,便得到遍历的结果。 三角形代表前序遍历结果 圆形代表中序遍历结果 方形代表后序遍历结果 线索二叉树 遍历二叉树是将非线性的树结构线性化为一个线性序列(先序、中序、后序),使线性序列中每个结点有一个直接前驱和后继。 以二叉链表作为存储结构时,只能找到左、右孩子信息,不能直接得到结点在任一序列中的前驱和后继信息,最简单的方法是每个结点上增加两个指针域,但有点浪费。其实,n个结点的二叉链表中必定存在n+1个空链域,因此可用这些链域来存放结点的前驱和后继信息。 其中: ltag = 0: lchild域指示结点的左孩子 ltag = 1: lchild域指示结点的前驱 rtag = 0: rchild域指示结点的右孩子 rtag =1: rchild域指示结点的后继 以这种结构构成的二叉链表叫线索链表。 其中指向结点前驱和后继的指针叫线索。 加上线索的二叉树叫线索二叉树。 对二叉树以某种次序遍历使其为线索二叉树的过程叫线索化。 结点结构: lchild ltag rtag data rchild typedef struct threaded_BT { char info; struct threaded_BT *lchild, *rchild; //左右孩子指针 int ltag, rtag; //左右标志 }; 线索二叉树结点结构的存储表示,用C语言描述如下: 1 中序线索化 线索化的实质是将二叉链表中的空指针改为指向前驱或后继的线索,而前驱或后继的信息只有在遍历时才能得到,因此线索化的过程即是在遍历的过程中修改空指针的过程。 中序遍历建立中序线索化链表, 算法如下面的程序所示: void inthreading ( bt, head ) struct threaded_BT *bt, *head; //指针bt指向树根,指针head指向遍历时建立的链表头结点 { //指针pr指向刚被访问的结点,即指向当前结点前驱 struct threaded_BT *p, *pr; //指针p指向当前结点 head=(struct threaded_BT *)malloc(sizeof(struct threaded_BT)); head-ltag=0; //指向树根,头结点的左孩子 head-rtag=0; //指向头结点的右孩子 head-info=“”; //建立头结点,头结点数据域为空 head-rchild=head; //头结点的右孩子为头结点本身 if ( bt = = NULL ) //如果为空二叉树,则左指针指向头结点 head-lchild=head; else { head-lchild=bt; //非空二叉树,左指针指向根结点 p=head; //当前结点为head(头结点)时 pr=NULL; //前驱为空,改为pr=head就可让D-lchild指向head, P72图 inthread (bt, pr); //中序遍历进行中序线索化
您可能关注的文档
最近下载
- 【机构秘籍】小学奥数题库《几何》-直线型-鸟头模型-0星题(含解析)全国通用版.doc VIP
- 浙大单片机导论实验报告.doc
- kuka机器人_KR30-3各轴分解图以及保养.pdf
- 人力行政部OGSM计划.pptx
- 中国哲学史简答题和论述题.doc
- 作业11:《windows服务器基础配置与局域网组建》工学一体化课程教学进度计划表.docx VIP
- 【机构秘籍】小学奥数题库《几何》-直线型-一半模型-2星题(含解析)全国通用版.doc VIP
- 第2章、房屋建筑制图统一标准和基本技能(2014-12).ppt
- 山西师范大学2022-2023学年《植物生理学》期末考试试卷(A卷)含参考答案.docx
- 水电水利工程基本词汇对照表(法语).docx
文档评论(0)