- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 树与二叉树 二叉树的遍历 任课教师:代丽( dlzist@163.com) 6.3 遍 历 二 叉 树 遍历二叉树是指以一定的次序访问二叉树中的每个结点, 并且每个结点仅被访问一次。 所谓访问结点是指对结点进行各种操作的简称。 遍历二叉树的过程实质是把二叉树的结点进行线性排列的过程。 二叉树的遍历次序 令LTR分别代表遍历左子树、 访问根结点和遍历右子树, 则对一棵二叉树的遍历可以有六种不同次序: LTR, LRT, TLR, TRL, RLT, RTL。 然而经常用到的总是先左(L)后右(R), 若再把访问根结点(T)的操作穿插其中, 则只有三种不同的遍历次序: LTR、 TLR 和 LRT。 例 子 6.3.1 先根遍历 先根遍历可以递归的描述如下: 如果根不空: (1) 访问根结点; (2) 按先根次序遍历左子树; (3) 按先根次序遍历右子树; 否则返回。 图示如下: 先根遍历的递归算法 void preorder(Bnode *p) { if (p!=NULL) { printf (%6c\t”, p-data); /*访问根结点*/ preorder(p-lch); /*按先根次序遍历左子树*/ preorder(p-rch); /*按先根次序遍历右子树*/ } }/* preorder */ …….. main() { t=create(); preorder(t); } 说 明 还应注意对某根结点访问之后, 便对其左子树进行先根遍历, 随即进入下一层递归调用, 当返回本层调用时, 仍以本层根结点为基础对其右子树进行先根遍历。 当从下一层递归调用(先根遍历右子树)再次返回本层时, 接着就从本层调用返回到前一层调用。依此类推, 最终返回主调程序。 先序遍历二叉树的非递归算法 void preorder_Nonrecursive(Bnode t) { ??InitStack (S);??Push (S,t); //根指针进栈??while (! StackEmpty (S))??{? while (Gettop (S,p) p) { ???printf(“%6c”, p-data);?????? push (S , p-lch);???? } //向左走到尽头???? pop(S,p);???? if (! StackEmpty (S))???? { pop(S,p);???? push(S,p-rch); //向右一步???? }??} } //preorder_Nonrecursive 6.3.2 中根遍历 中根遍历可以递归的描述如下: 如果根不空: (1) 按中根次序遍历左子树; (2) 访问根结点; (3) 按中根次序遍历右子树; 否则返回。 中根遍历递归算法 void inorder( Bnode *p) { if (p!=NULL) { inorder(p-lch); /* 中根遍历左子树 */ printf(%6c\t”, p-data); /* 访问根结束 */ inorder(p-rch); /* 中根遍历右子树 */ } } /* inorder */ 中根遍历非递归算法 void inorderz(Bnode *p) { struct node *s[10]; q=p; top=0; /* 栈顶指针 */ /*bool=1为真值继续循环; bool=0为假值栈空, 结束循环*/ bool=1; printf(“\n 中根遍历:\n”); 中根遍历非递归算法 do{ while (q! =NULL) { top++; s[top]=q; q=q-lch; } if (top==0) bool=0; else { q=s[top]; top- -; p
您可能关注的文档
- 骨盆桶柄样损伤的手术治疗.ppt
- 公开课《国家财政》.ppt
- OA办公自动化培训.ppt
- 赤峰中财期货 新建 Microsoft PowerPoint 演示文稿.ppt
- 储运油料学 第三章++原油的分类.ppt
- 六年级下册Unit2复习课件.ppt
- 电气工程导论之二.ppt
- 课题2元素1____第四单元___物质构成的奥秘___元素.ppt
- 数理统计 第七章 参数估计 第一讲.ppt
- 经济生活》解题思路与技巧.ppt
- (适合党委书记、纪委书记、委员、支部书记)2025年第一季度党风廉政建设专题党课讲稿.doc
- 3篇 在党委理论学习中心组2025年第一季度集中研讨会上的讲话提纲+理论学习中心组2025年学习计划.doc
- 2025年在市纪委监委春节节后收心会上的党课讲稿辅导报告.docx
- 2025年春季少先队工作计划.doc
- 领导班子四个带头之在遵规守纪、清正廉洁前提下勇于担责、敢于创新方面“四个带头”存在的问题不足之处+2025年民主生活会的存在问题示例.docx
- 2025年二季度作风建设党课讲稿:强化作风建设永葆政治本色.docx
- 2025年党支部书记第二季度党课讲稿.doc
- 2025年党委理论学习中心组学习计划+2025年理论中心组学习计划表.docx
- 在2025年市直机关党风廉政建设和反腐败工作专题部署推进会上的讲话+落实一岗双责和党风廉政责任制建设情况报告.doc
- 2025年民主生活会对照检查“四个带头”之带头严守政治纪律和政治规矩,维护党的团结统一方面查摆26条问题.doc
文档评论(0)