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

最近更新

城市绿化改造渣土清运模板 8页

企业人才管理需以人为本论文 4页

国际快递运输安全协议 8页

企业人力资源管理外包风险分析及防范措施 4页

企业人力资本心理契约的博弈与管理-精品文档 6页

医院装修分期付款协议 8页

人工神经网络在企业员工绩效评估系统中的应用.. 6页

北京市游泳馆设施装修合同 9页

化妆品专柜配送协议 9页

人力资源部月度绩效评估报告 5页

冰河时代主题公园可行性策划 34页

人力资源绩效考核KPI指标库最权威(最全的) 4页

人力资源管理论文精选 4页

人力资源管理的重要性及最佳实践 4页

不确定系统滤波技术研究及在组合导航中的应用.. 3页

体育场馆居间服务协议 8页

人力资源管理实践中的创新点在哪里 3页

互联网教育居间服务合同 8页

人力资源管理中的员工关系管理研究 6页

人力资源管理专业-本科毕业论文(设计)任务书、.. 5页

二零二五年度车辆背户代持及车辆二手车置换协.. 9页

人力资源期望理论共18文档 5页

二零二五年度装载机租赁合同书(适用于森林防.. 9页

人力资源培训会发言稿(3) 4页

人力资源六大模块内容详解 7页

人事部门述职述廉报告(三) 5页

二零二五年度租房租赁合同风险评估及规避合同.. 8页

九型人格理论在企业人力资源管理中的应用 5页

第一章昆虫分类学的概念和发展 53页

二零二五年度现代农业用地合作开发协议 10页