1 / 24
文档名称:

怎样用栈实现递归与非递归的转换.doc

格式:doc   大小:35KB   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

怎样用栈实现递归与非递归的转换.doc

上传人:﹎多多Dad 2020/3/3 文件大小:35 KB

下载得到文件列表

怎样用栈实现递归与非递归的转换.doc

相关文档

文档介绍

文档介绍:?  1)并不是每一门语言都支持递归的.  2)有助于理解递归的本质.  3)有助于理解栈,.  递归与非递归的转换基于以下的原理:,那个"原理"并没有通过严格的数学证明,只是我的一个猜想,只是在至少在我遇到的例子中是适用的.  学习过树结构的人都明白,有三种方法能够遍历树:前序,中序,,,那个地点以专门的二叉树来讲明,只是大多数情况下二叉树差不多够用,而且理解了二叉树的遍历,)前序遍历a)递归方式:[code:1:2d]voidpreorder_recursive(BitreeT)/*先序遍历二叉树的递归算法*/{if(T){visit(T); /*访问当前结点*/preorder_recursive(T->lchild);/*访问左子树*/preorder_recursive(T->rchild);/*访问右子树*/}}[/code:1:2d]b)非递归方式[code:1:2d]voidpreorder_nonrecursive(BitreeT)/*先序遍历二叉树的非递归算法*/{initstack(S);push(S,T); /*根指针进栈*/while(!stackempty(S)){while(gettop(S,p)&&p){/*向左走到尽头*/visit(p);/*每向前走一步都访问当前结点*/push(S,p->lchild);}pop(S,p);if(!stackempty(S)){/*向右走一步*/pop(S,p);push(S,p->rchild); }}}[/code:1:2d]2)中序遍历a)递归方式[code:1:2d]voidinorder_recursive(BitreeT)/*中序遍历二叉树的递归算法*/{if(T){inorder_recursive(T->lchild);/*访问左子树*/visit(T); /*访问当前结点*/inorder_recursive(T->rchild);/*访问右子树*/}}[/code:1:2d]b)非递归方式[code:1:2d]void inorder_nonrecursive(BitreeT){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);visit(p);/*访问当前结点*/push(S,p->rchild);/*向右走一步*/}}}[/code:1:2d]3)后序遍历a)递归方式[code:1:2d]voidpostorder_recursive(BitreeT)/*中序遍历二叉树的递归算法*/{  if(T){  postorder_recursive(T->lchild);/*访问左子树*/  postorder_recursive(T->rchild);/*访问右子树*/  visit(T); /*访问当前结点*/  }}[/code:1:2d]b)非递归方式[code:1:2d]typedefstruct{BTNode*ptr;enum{0,1,2}mark;}PMType; /*有mark域的结点指针类型*/voidpostorder_nonrecursive(BiTreeT)/*后续遍历二叉树的非递归算法*/{PMTypea;initstack(S); /*S的元素为PMType类型*/push(S,{T,0}); /*根结点入栈*/while(!stackempty(S)){pop(S,a);switch(){case0:push(S,{,1}); /*修改mark域*/if(->lchild) push(S,{->lchild,0});/*访问左子树*/break;case1:push(S,{,2}); /*修改mark域*/if(->rchild) push(S,{->rchild,0});/*访问右子树*/break;case2:visit(); /*访问结点*/}}}[/code:1:2d]      4)如何实现递归与非递归的转换         通常,一个函数在调用另一个函数之前

最近更新

粉末活性炭对苯酚废水的吸附研究 4页

管线防堵压力控制器的研制与应用 4页

管井与引渗井相结合在某基坑降水中的应用 3页

落实主体责任坚持安全发展 28页

突出煤层炮掘工作面光面爆破技术 3页

空管监视台站组网规划与优化选址方法 3页

空战场全数字模拟电磁环境表示方法 3页

税收筹划在企业管理实践中的应用 3页

移动应用语境中的图标设计研究 3页

科技型人才聚集中的知识扩散研究 3页

私募股权投资目标公司首次上市发行抑价分析 3页

离子选择性电极测定煤中氟浓度方法及影响因素.. 3页

祁门县油茶林分类型经营技术探讨 3页

社会生态系统及脆弱性驱动机制分析 3页

磷酸根和镉离子在羟基铁改性膨润土表面的协同.. 3页

磁性复合载体固定生姜蛋白酶的工艺优化研究 5页

碳纤维增强聚丙烯复合管道的制备及性能研究 3页

研究及制定扩大营改增试点方案 3页

矿山六大避险系统应用中存在的问题及对策 3页

矿井主排水系统全自动化运行模式的关键问题研.. 3页

石油钻井中液动冲击旋转钻井技术的运用 3页

石油修井工作主要风险及安全预防措施探究 3页

草坪建植之草种选用 28页

苏卫单招校测2025试卷 9页

《黄河颂》33694省公开课一等奖全国示范课微课.. 29页

部编版九年级语文上册必背古诗文 8页

消毒小车策划书 4页

3D打印技术与虚拟现实的融合 26页

党建调研提纲 2页

雷雨第四幕1 20页