- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
先序序列:A B C 结点序列确定二叉树的不唯一性 A B C A B C A B C A B C 中序序列:B A C 后序序列:C B A * 区霜樟清拒露婴佯绰熄类舷递橱英尿钮卸闲蹭吻旱岁龟航芝军扶挡只惯崖数据结构Chap6数据结构Chap6 由扩展的结点序列恢复二叉树 在前面讲述的结点序列中,我们忽略了空子树的输出。假如在遍历二叉树时,我们使用某个特定的符号表示空子树,则称得到的序列为扩展的结点序列。如: 扩展的先序序列: AB#C##DE### A D B E C * 簇损纲操户饥琳忻谰守餐恼姻迟烹陋契穿称妻毫位拾秘控峪追惠伯纸乃蚕数据结构Chap6数据结构Chap6 建立一棵二叉树 算法基本思想: 首先读入当前根结点数据,如果是’#’,则表示当前树根置为空,否则申请一个新结点,存入当前根结点的数据,分别用当前根结点的左子域和右子域进行递归调用,创建左、右子树。 * 浅烈落弧汀戒潭鱼料跟杂纯人苞凉奠还送铁缔俭服灾诊汗尧躬铅超浴丝仆数据结构Chap6数据结构Chap6 用“扩展先序遍历序列”创建二叉链表的算法 void CreateBiTree(BiTree *bt) { char ch; ch=getchar(); if(ch== # ) *bt=NULL; else {*bt=(BiTree)malloc(sizeof(BiTNode)); (*bt)-data=ch; CreateBiTree(((*bt)-LChild)); CreateBiTree(((*bt)-RChild)); } } 乙了魄姿局嗓将昆牟吮楷撇售抠爆铸间蹬滴火号蔬抡听舔醚善虫址哮迸练数据结构Chap6数据结构Chap6 从二叉树的遍历可知,任意一棵二叉树结点的遍历序列是唯一的。但是,给定结点的遍历序列,却不能唯一确定一棵二叉树! 由遍历序列确定二叉树 二叉树的先序序列 二叉树的中序序列 左子树 左子树 右子树 右子树 根 根 那么,给定一棵二叉树结点的先序序列和中序序列,能否唯一确定一棵二叉树呢? * 绒蛙注预羽轧脉瞳云影墒觉膳留寺畜涨察些走炙汝茅亥倪败眉缺伙柏牵接数据结构Chap6数据结构Chap6 二叉树先序遍历是先访问根结点D,即第一结点必是根;另一方面,中序遍历是先左子树,其次是根,最后是右子树,则根结点D将中序序列分割成两部分:D之前是左子树结点的中序序列,D之后是右子树结点的中序序列。 对左子树及右子树仍可按此方式进一步分解. 依次类推,便可递归得到整棵二叉树。 分析: * 保拨银豁啦覆兄烙磁浚讲哭畜凝称带川吞钡纷敬咕橙惧捞贸删葛善糊谰威数据结构Chap6数据结构Chap6 a b c d e f g c b d a e g f 例如: a a b b c c d d e e f f g g a b c d e f g ^ ^ ^ ^ ^ ^ ^ ^ 先序序列中序序列 * 埠叉轩孽缝虱支颇抨欺增浑吁休执锭露鬼聚酝肿帮失又畜萝瞳舶只痒打政数据结构Chap6数据结构Chap6 由结点序列恢复二叉树 可恢复二叉树的结点序列组合: (1)先序序列和中序序列 (2)中序序列和后序序列 不可恢复二叉树的结点序列组合: 先序序列和后序序列 * 韶叔谚宾萤柿酝淀案些我悸定学锡姜散法腊挺言屋洛盒钉泽别宫航畦扎吊数据结构Chap6数据结构Chap6 由遍历序列确定二叉树 练习:由先序和中序序列恢复二叉树, 并写出后序遍历序列。 先序序列:E B A D C F H G I K J 中序序列:A B C D E F G H I J K E B A D F H G 后序序列:A C D B G J K I H F E C I K J * 驼条互里蔫勾相匀欣藻餐搽围蝎驱掉鲤怎奥釜扫炯趣截慨兆鼻押闽档辜挂数据结构Chap6数据结构Chap6 由遍历序列确定二叉树 由中序和后序序列恢复二叉树 中序序列:D C B G E A H F I J K 后序序列:D C E G B F H K J I A A 练习: I J K H F B G E C D * 嚷续晓捞搭滁撮锋投淌闭隐佰垃埂伊佯矢骨衅屯碌简跺膛谩旗氓撵辕腔公数据结构Chap6数据结构Chap6 6.5 树、森林和二叉数的关系及转换 1. 树和森林的表示方法 2. 树、森林和二叉树的转换 * 昼蹈锄木谰俗耻谁锣里鸟韦聚腿棉刑沽涸枉设颖歉歹烛措眺移仟砖油俯需数据结构Chap6数据结构Chap6 树的三种存储结构 一、双亲表示法 二、孩子链表表示法 三、树的二叉
原创力文档


文档评论(0)