1 / 11
文档名称:

如何用栈实现递归与非递归的转换.doc

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

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

分享

预览

如何用栈实现递归与非递归的转换.doc

上传人:cjl201702 2019/2/18 文件大小:63 KB

下载得到文件列表

如何用栈实现递归与非递归的转换.doc

相关文档

文档介绍

文档介绍:如何用栈实现递归与非递归的转换(一)三种遍历树的算法    递归与非递归转换的基础知识是能够正确理解三种树的遍历方法:前序,中序和后序,第一篇就是关于这三种遍历方法的递归和非递归算法。?    1)并不是每一门语言都支持递归的.    2)有助于理解递归的本质.    3)有助于理解栈,    递归与非递归的转换基于以下的原理:,这个"原理"并没有经过严格的数学证明,只是我的一个猜想,,有三种方法可以遍历树:前序,中序,,,这里以特殊的二叉树来说明,不过大多数情况下二叉树已经够用,而且理解了二叉树的遍历,其它的树遍历方式就不难了。1)前序遍历a)递归方式:voidpreorder_recursive(BitreeT)     /*先序遍历二叉树的递归算法*/{if(T){visit(T);//访问当前结点preorder_recursive(T->lchild);  /*访问左子树*/                          preorder_recursive(T->rchild);  /*访问右子树*/                       }                    }        b)非递归方式              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);                          }                       }                    }        2)中序遍历        a)递归方式              voidinorder_recursive(BitreeT)     /*中序遍历二叉树的递归算法*/                    {                       if(T){                          inorder_recursive(T->lchild);  /*访问左子树*/                          visit(T);         /*访问当前结点*/                          inorder_recursive(T->rchild);  /*访问右子树*/                       }                    }        b)非递归方式              void inorder_nonrecursive(BitreeT)                    {                       initstack(S);           /*初始化栈*/                       push(S,T);           /*根指针入栈*/                       while(!stackempty(S)){                          while(gett

最近更新

“微电子组装”有关技术文献目录索引 2页

“六五”期间湖南石化系统技术进展简况 2页

高一理10班家长会 14页

ZnO单晶的制备及气敏特性研究 2页

YCT系列电磁调速电动机的技术设计简介 2页

XL-WS型单面提花圆机的机构原理及上机工艺 2页

V 2O 5硼砂浴渗钒及其在铣刀上的应用 2页

采购与付款内部控制与核算规程设计课件 30页

2025年幼儿园安全保卫学年工作总结 19页

2025年幼儿园学习心得体会大全 23页

Sz-1锭子振动性能测试分析仪研制成功 2页

2025年幼儿园夏天主题教育活动策划案 11页

2025年幼儿园园长的心得体会 40页

仿昆虫中翅的可展柔顺机构设计及其运动学和力.. 3页

饲料销售技巧培训 95页

SAGD注汽水平井轨道修正设计方法 2页

2025年幼儿园中班家长会活动计划 8页

2025年幼儿园下半年工作计划范文7篇 26页

餐厅新员工入职企业文化培训PPT 22页

PAM絮凝交联堵漏的使用及有关问题的探讨 2页

2025年幸福爱情语录合集44条 6页

NS·18砂辊碾米机应用于小麦分层碾磨 2页

NF高效能减水剂的试验与工程应用 2页

NaF晶体中从带色心的发光研究 2页

桥梁建设项目承包合同书 6页

第8课《杂交水稻之父——袁隆平》同步练习(语.. 3页

校园食堂承包合同简版 6页

2025年年会简短致辞发言稿2025 11页

LNGLCNG加气站BOG回收利用可行性探讨 2页

2025年辽宁经济职业技术学院单招职业适应性测.. 74页