首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
自考
试编写出先序、中序和后序遍历的非递归算法。
试编写出先序、中序和后序遍历的非递归算法。
admin
2014-12-25
48
问题
试编写出先序、中序和后序遍历的非递归算法。
选项
答案
(1)先序遍历。 void PreOrderTraverse(BiTree bt) { /*二叉树bt采用二叉链表存储,对其进行先序遍历*/ if(bt) /*二叉树非空*/ {InitStack(S);Push(S,bt); while(!EmptyStack(S)) {while(GetTop(S,p)&&p) /*当栈顶元素非空*/ {visit(p一>data); push(S,P一>ichild); Pop(S,P); if(!EmptyStack(S)) /*若栈非空,使栈顶元素的右孩子人栈*/ {Pop(S,p);Push(S,P一>rchild);) } } } (2)中序遍历。 void InOrderTraverse(BiTree bt) { /*二叉树bt采用二叉链表存储,对其进行中序遍历*/ if(bt) {InitStack(s);Push(s,bt); while(!EmptyStack(S)) {while(GetTop(S,p)&&p) push(S,P一>ichild); Pop(S,P); if(!EmptyStack(S)) {Pop(S,P); visit(p一>data); Push(S,P一>rchild); } } } } (3)后序遍历。 voidFeorder(BiTreebt) { /*后序遍历bt所指的二又树,s为存储二叉树结点指针的栈*/ InitStack(S);Push(S,bt); while(!EmptyStack(S)) {while(GetTop(S,P)) Push(S,P一>ichild); Pop(S,P); if(!EmptyStack(S)) {Push(S,GetTop(S,p)一>rchild); if(GetTop(s,P)==NULL) {Pop(s,P);Pop(s,P); visit(P一>data); while(GetTop(s,q)一>rchild==p&&!EmptyStack(s)) {Pop(s,P); visit(P一>data); } if(!EmptyStack(s)) Push(s,GetTop(s,P)一>rchild); } } } }
解析
将一个递归算法转换成一个非递归算法,利用栈就可消除递归,根据对二叉树进行先序、中序和后序遍历的思想,其非递归算法描述如下。
转载请注明原文地址:https://jikaoti.com/ti/puLaFFFM
本试题收录于:
数据结构导论题库理工类分类
0
数据结构导论
理工类
相关试题推荐
传递函数G(s)=的频率特性相位角φ(ω)=________。
某环节的传递函数为G(s)=e-τs,则它是【】
用奈奎斯特稳定性判据判别系统稳定的充要条件是z=p-N=0,其中p表示
在OSI参考模型中,属于结点到结点层的是【】
下列关于信息的定义中,符合信息理论创始人香农观点的是()
如图,圆圈代表网络结点,节点间的连线表示它们间有网络相连,连线上的数表示该网线传送10兆字节的信息所用时间(单位:秒)。现需从点s向点t传送10兆字节的信息,问至少需要多少时间?
随机试题
模板工程设计的主要原则有()。
企业的基本战略类型包括()
习近平新时代中国特色社会主义思想的理论起点、逻辑起点、价值起点是()
A.苦参B.紫草C.桔梗D.白术E.浙贝母试卷附图中,的药材是()。
保税仓库货物出库用于加工贸易的,由加工贸易企业或其代理人按特定用途的报关程序办理进口报关手续。()
()不属于可转换公司债券募集说明书的内容。
甲某系中国公民,2008年12月份取得如下收入:领取工资3300元,其中包括托儿补助费30元,政府特殊津贴100元,另领取2006年度年终奖3000元;转让非专利技术一项,收入10000元,支付给中介机构的中介费1000元,有合法、有效的证明文件;
××省人民政府办公厅文件省政府办公厅进一步加强关于农村五保供养服务机构建设管理的意见各市、县(市、区)人民政府、省各委办厅局、省各直属单位:为进一步加强农村五保供养服务机构管理,提高
设D={(z,y)|x2+y2≤x},求
Whenhewasinthecountryside,he____visitthepoorpeasants.
最新回复
(
0
)