数据结构 第六章树和二叉树.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中序遍历二叉树的操作定义 若二叉树为空,则空操作;否则 (1)中序遍历左子树; (2)访问根结点; (3)中序遍历右子树。 C B D F A G E A B C D G E F 第二十九页,共六十九页,2022年,8月28日 后序遍历二叉树的操作定义 若二叉树为空,则空操作;否则 (1)后序遍历左子树; (2)后序遍历右子树; (3)访问根结点。 C F D B G E A A B C D G E F 第三十页,共六十九页,2022年,8月28日 例:已知结点的先序序列和中序序列,求整棵二叉树 先序序列:A B C D E F G 中序序列:C B E D A F G A C B E D F G A B C D E F G A B C F D E G 第三十一页,共六十九页,2022年,8月28日 先序遍历二叉树的递归算法 Status PreOrderTraverse(BiTree T, Status(* Visit)(TElemType e)){ if (T){ if (Visit(T-data)) if (PreOrderTraverse(T-lchild,Visit)) if (PreOrderTraverse(T-rchild,Visit)) return OK; return ERROR; }else return OK; }//PreOrderTraverse 第三十二页,共六十九页,2022年,8月28日 作业 分别写出中序遍历二叉树和后序遍历二叉树的递归算法 已知一棵二叉树的中序和后序序列如下,画出此二叉树并写出该二叉树的先序遍历序列。 中序序列:A,B,C,D,J,E,F,H,G,I 后序序列:B,C,J,D,A,H,I,G,F,E 第三十三页,共六十九页,2022年,8月28日 中序遍历二叉树的非递归算法 基本思想 中序遍历一棵非空树t时 ,首先应该进入t的左子树访问,此时由于t的根结点及右子树尚未访问,因此必须将t保存起来,放入栈中,以便访问完其左子树后,从栈中取出t,进行其根结点及右子树的访问;对t的左子树和右子树的遍历也是如此。 主要步棸 先将根结点入栈; 将栈顶元素的所有左孩子依次入栈; 出栈一个结点,访问之; 若该结点的右孩子不空,入栈,重复2),3)步; 如果栈不空,重复3),4)步,否则结束。 第三十四页,共六十九页,2022年,8月28日 Status InOrderTraverse(BiTree T, Status(* Visit) (TElemType e)) { //采用二叉链表存储结构,中序遍历二叉树的非递归算法。 InitStack(S); Push(S,T); //根指针进栈 while(!StackEmpty(S)){ while(GetTop(S,p) p) Push(S,p-lchild); //向左走到尽头 Pop(S, p); //空指针退栈 if (!StackEmpty(S)){ //访问结点,向右一步 Pop(S,p); if (!Visit(p-data)) return ERROR; Push(S,p-rchild); } //if } //while return OK; }//InOrderTraverse 算法6.2 第三十五页,共六十九页,2022年,8月28日 算法6.3 Status InOrderTraverse( BiTree T, Status(* Visit)(TElemType e)){ InitStack(S); p=T; while(p||!StackEmpty(S)){ if(p) {Push(S,p); p=p-lchild;} //根指针进栈,遍历左子树 else{ //根指针退栈,访问根结点,遍历右子树 Pop(S,p); if(!Visit(p-data)) return ERROR; p=p-rchild; } //else } //while return OK

文档评论(0)

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

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

1亿VIP精品文档

相关文档