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)如何实现递归与非递归的转换         通常,一个函数在调用另一个函数之前

最近更新

大功率变频器的拓扑结构及其谐波抑制技术 5页

复合调味品项目人力资源规划与薪酬管理 5页

基于单片机设计的风力摆系统 7页

基于单片机的电子琴课程设计报告 7页

基于单片机的智能温室大棚控制系统 毕业论文设.. 7页

《数字营销资料》(7) 6页

基于全面质量管理的交通运输专硕培养质量保障.. 6页

基于STM32的风速风向测试系统设计 4页

基于OBE理念的人力资源管理专业教学模式研究 5页

《数码相机销售技巧》 13页

第三章胎儿的发展与社会环境 8页

《数据库营销技巧》 9页

培训结业典礼领导讲话稿(9) 4页

培训与绩效管理在企业中的作用 4页

地市级单位绩效考核体系优化研究--以G市烟草专.. 5页

国有企业规范董事会建设问题分析 5页

国有企业员工绩效管理的常见问题与对策精选 6页

国有企业人工成本的管控对策 6页

国有企业产权管理存在的问题及对策建议 3页

国家电网人力资源管理的瓶颈及对策研究 6页

国企人力部门年终总结范文(3) 5页

四川师范大学论文格式 6页

商务管理毕业论文范文 4页

哲学专业课题毕业答辩开题报告模板 5页

和管理支持是智慧企业的核心形态 6页

员工激励方案方案(9) 5页

丙泊酚麻醉对新生期大鼠认知功能发育的影响 2页

苏卫单招校测2025试卷 9页

人防工程防汛的应急预案 4页

小学四年级体育健康教案 13页