- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学课件课件PPT医学培训课件教育资源教材讲义
在对一棵二叉树进行遍历,只要遍历的策略已确定,就可以得到一个唯一的结点序列。 那么,给定一个遍历的结点序列,能否唯一的确定一棵二叉树? 答案:不能! 由结点序列恢复二叉树 * 先序序列:A B C 结点序列确定二叉树的不唯一性 A B C A B C A B C A B C 中序序列:B A C 后序序列:C B A * 由扩展的结点序列恢复二叉树 在前面讲述的结点序列中,我们忽略了空子树的输出。假如在遍历二叉树时,我们使用某个特定的符号表示空子树,则称得到的序列为扩展的结点序列。如: 扩展的先序序列: AB#C##DE### A D B E C * 建立一棵二叉树 算法基本思想: 首先读入当前根结点数据,如果是’#’,则表示当前树根置为空,否则申请一个新结点,存入当前根结点的数据,分别用当前根结点的左子域和右子域进行递归调用,创建左、右子树。 * BiTree CreateBiTree() { char ch; BiTreeNode *p; ch=getchar(); if (ch==‘#’) return NULL; else { p=(BiTreeNode *) malloc(sizeof(BiTreeNode)); p-data=ch; p-LChild=CreateBiTree(); p-RChild=CreateBiTree(); return (p); } } 创建二叉树的算法 * 从二叉树的遍历可知,任意一棵二叉树结点的遍历序列是唯一的。但是,给定结点的遍历序列,却不能唯一确定一棵二叉树! 由遍历序列确定二叉树 二叉树的先序序列 二叉树的中序序列 左子树 左子树 右子树 右子树 根 根 那么,给定一棵二叉树结点的先序序列和中序序列,能否唯一确定一棵二叉树呢? * 二叉树先序遍历是先访问根结点D,即第一结点必是根;另一方面,中序遍历是先左子树,其次是根,最后是右子树,则根结点D将中序序列分割成两部分:D之前是左子树结点的中序序列,D之后是右子树结点的中序序列。 对左子树及右子树仍可按此方式进一步分解. 依次类推,便可递归得到整棵二叉树。 分析: * 由结点序列恢复二叉树 可恢复二叉树的结点序列组合: (1)先序序列和中序序列 (2)中序序列和后序序列 不可恢复二叉树的结点序列组合: 先序序列和后序序列 * 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 ^ ^ ^ ^ ^ ^ ^ ^ 先序序列中序序列 * 由遍历序列确定二叉树 练习:由先序和中序序列恢复二叉树, 并写出后序遍历序列。 先序序列: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 * 由遍历序列确定二叉树 由中序和后序序列恢复二叉树 中序序列: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 * 6.5 树、森林和二叉数的关系及转换 1. 树和森林的表示方法 2. 树、森林和二叉树的转换 * 树的三种存储结构 一、双亲表示法 二、孩子链表表示法 三、树的二叉链表(孩子-兄弟) 存储表示法 1. 树和森林的表示方法 * A B C D E F G 0 A -1 1 B 0 2 C 0 3 D 0 4 E 2 5 F 2 6 G 5 data parent 一、双亲表示法: 结点结构: data parent * 用一组连续的空间来存储树中的结点,每个结点附设一个指示器指示其双亲结点在表中的位置,其结点的结构如下: 双亲表示法的优点: 利用了树中每个结点(根结点除外)只有一个双亲结点的性质,使得查找某个结点的双亲结点非常容易。 双亲表示法的缺点: 求某个结点的孩子时,需要遍历整个表。 * 通常是把每个结点的孩子结点排列起来,构成一个单链表,称为孩子链表。n个结点共有n个孩子链表(叶结点的孩子链表为空表)。 n个结点的数据和n个孩子链表的头指针又组成一个顺序表。 二、孩子链
您可能关注的文档
- 蔬菜无土栽培技术教学幻灯片.ppt
- 蔬菜详细规格教学幻灯片.ppt
- 蔬菜学+二教学幻灯片.ppt
- 蔬菜腌制品加工技术教学幻灯片.ppt
- 蔬菜腌渍第六章教学幻灯片.ppt
- 蔬菜也有想象力教学幻灯片.pptx
- 蔬菜-叶菜类教学幻灯片.ppt
- 蔬菜营养特性与施肥技术教学幻灯片.ppt
- 蔬菜与健康教学幻灯片.ppt
- 蔬菜育苗场规划设计教学幻灯片.ppt
- 2026秋季中国工商银行集约运营中心(佛山)校园招聘20人备考题库含答案详解(培优).docx
- 中国农业银行宁波市分行2026年度校园招聘214人备考题库附答案详解(夺分金卷).docx
- “梦工场”招商银行长沙分行2026寒假实习生招聘备考题库附答案详解(轻巧夺冠).docx
- 2026贵州省公共资源交易中心定向部分高校选调优秀毕业生专业技术职位考试备考题库完整参考答案详解.docx
- 中国建设银行建信金融资产投资有限公司2026年度校园招聘8人备考题库含答案详解(a卷).docx
- 中国农业银行宁夏回族自治区分行2026年度校园招聘146人备考题库及一套参考答案详解.docx
- 门头沟区青少年事务社工招聘1人备考题库附答案详解(模拟题).docx
- 中国建设银行运营数据中心2026年度校园招聘20人备考题库含答案详解ab卷.docx
- 中国建设银行建银工程咨询有限责任公司2026年度校园招聘9人备考题库及答案详解(有一套).docx
- 2026秋季中国工商银行重庆市分行校园招聘270人备考题库含答案详解(完整版).docx
原创力文档


文档评论(0)