- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08.二叉树的遍历及应用分析
A左= (B左) (B右) B A右= (C左) (C右) C = (C左) C 后序遍历(左右根) A C B D G F E B D E C G F T= (A左) (A右) A = (B左) (B右) B (C左) C A A右 A左 D (B左) E (B右) B左= (D左) (D右) D =D B右= (E左) (E右) E =E G F (C左) C左= (F左) (F右) F = (F右) F G (F右) F右= (G左) (G右) G =G T= (B左) (B右) B (C左) C A = D E B G F C A 【例】写出下面二叉树的前序、中序和后序遍历序列。 前序:ABDFGCEH 中序:BFDGAEHC 后序:FGDBHECA A C B D H E F G 前序遍历(根 左 右) A C B D H E F G A A左子树 A右子树 B B右子树 D F G C C左子树 E H 中序遍历(左 根 右) A C B D H E F G A A左子树 A右子树 B B右子树 D F G C C左子树 E H 后序遍历(左 右 根) A C B D H E F G A A左子树 A右子树 B B右子树 D F G C C左子树 E H 【例】已知一颗二叉树的后序遍历序列和中序遍历序列分别为 EBDCA 和 BEADC ,试画出这颗二叉树。 思路:由任意一个遍历序列均不能惟一确定一颗 二叉树,只有知道中序和后序或中序和前 序遍历序列才能惟一确定一颗二叉树。 确定方法:由前序(或后序)遍历序列确定树或 子树的根,再由中序遍历序列确定根 的左子树和右子树。 A B C D E 后序遍历序列:E B D C A (左 右 根) 中序遍历序列:B E A D C (左 根 右) A A E B B B E B C C 确定方法:由前序(或后序)序列确定根 再由中序序列确定左、右子树的范围 练习: 已知一颗二叉树的先序遍历序列和中序遍历序列分别为 ABCDEFG 和 CBEDAFG ,试画出这颗二叉树。 若二叉树非空,则按以下次序进行(递归)遍历: 访问根结点; 前序遍历根结点的左子树; 前序遍历根结点的右子树。 void PreOrder(BTNode *root) { if(root!=NULL){ coutroot-data; //访问根 PreOrder( root-lchild ); //前序遍历左子树 PreOrder( root-rchild ); //前序遍历右子树 } } A C D E F B G ^ ^ ^ ^ ^ ^ ^ ^ T 前序遍历算法 A B D E C F G 中序遍历算法 若二叉树非空则按以下次序进行(递归)遍历: 中序遍历根结点的左子树; 访问根结点; 中序遍历根结点的右子树。 void InOrder(BTNode *root) { if(root!=NULL){ InOrder( root-lchild ); //中序遍历左子树 coutroot-data; //访问根 InOrder( root-rchild ); //中序遍历右子树 } } 后序遍历算法 若二叉树非空则按以下次序进行(递归)遍历: 后序遍历根结点的左子树; 后序遍历根结点的右子树; 访问根结点。 void PostOrder(BTNode *root) { if(root!=NULL){ PostOrder( root-lchild ); //后序遍历左子树 PostOrder( root-rchild ); //后序遍历右子树 coutroot-data; //访问根 } } 建立二叉树 统计二叉树中结点总数 计算二叉树深度 查找二叉树中值为item的结点 清空二叉树 二叉树的遍历的应用 以二叉树的某种遍历序列建立二叉树 void CreateBTree_Pre(BTNode *root) { //要求按照前序遍历序列输入结点值item char item; cinitem; if(item == #) //如果读入#字符,创建空树 { root = NULL; return ;} e
您可能关注的文档
- “主多分离”形势下火电厂多经企业发展对策(定稿)解析.doc
- 新《环境保护法》试题.doc
- 新《拿来主义》课件1.ppt
- 07章_应力和应变分析_强度理论分析.ppt
- 07_XRAM分析.ppt
- 新二区卸车机优化改造技 术 报 告.doc
- 07章电解质溶液分析.ppt
- 新人教一轮复习Book2Unit2.docx
- “你必须把这条鱼放掉”解析.ppt
- 07章_电解质溶液分析.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)