第5章 树和二叉树.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章树和二叉树重点讲义

* D L R A D L R D L R B D C D L R A D B C 先序遍历序列:A B D C 若二叉树为空,则空操作 否则 访问根结点 (D) 前序遍历左子树 (L) 前序遍历右子树 (R) 遍历的算法实现-先序遍历 * 则三种遍历算法可写出: 遍历的算法实现--用递归形式格外简单! long Factorial ( long n ) { if ( n == 0 ) return 1;//基本项 else return n * Factorial (n-1); //归纳项} 回忆: * Status PreOrderTraverse(BiTree T){ if(T==NULL) return OK; //空二叉树 else{ coutT-data; //访问根结点 PreOrderTraverse(T-lchild); //递归遍历左子树 PreOrderTraverse(T-rchild); //递归遍历右子树 } } 先序遍历算法 * Status PreOrderTraverse(BiTree T){ if(T==NULL) return OK; else{ coutT-data; PreOrderTraverse(T-lchild); PreOrderTraverse(T-rchild); } } 主程序 Pre( T ) 返回 返回 pre(T R); 返回 返回 pre(T R); A C B D T B printf(B); pre(T L); B T A printf(A); pre(T L); A T D printf(D); pre(T L); D T C printf(C); pre(T L); C 返回 T 左是空返回 pre(T R); T 左是空返回 T 右是空返回 T 左是空返回 T 右是空返回 pre(T R); 先序序列:ABDC * 遍历的算法实现-中序遍历 若二叉树为空,则空操作 否则: 中序遍历左子树 (L) 访问根结点 (D) 中序遍历右子树 (R) A D B C L D R B L D R L D R A D C L D R 中序遍历序列:B D A C * Status InOrderTraverse(BiTree T){ if(T==NULL) return OK; //空二叉树 else{ InOrderTraverse(T-lchild); //递归遍历左子树 coutT-data; //访问根结点 InOrderTraverse(T-rchild); //递归遍历右子树 } } 中序遍历算法 * 遍历的算法实现-后序遍历 若二叉树为空,则空操作 否则 后序遍历左子树 (L) 后序遍历右子树 (R) 访问根结点 (D) A D B C L R D L R D L R D A D C L R D B 后序遍历序列: D B C A * Status PostOrderTraverse(BiTree T){ if(T==NULL) return OK; //空二叉树 else{ PostOrderTraverse(T-lchild); //递归遍历左子树 PostOrderTraverse(T-rchild); //递归遍历右子树 coutT-data; //访问根结点 } } 后序遍历算法 * Status PreOrderTraverse(BiTree T){ if(T==NUL

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档