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

最近更新

2025年度房屋买卖合同,涉及产权登记及过户流.. 8页

2025年度房东转租合同——智能家居配套 9页

2025年度彩钢瓦安装安全与环保责任合同协议 9页

2025年度建筑垃圾处理劳务大清包工程协议 9页

2025年度年度土地储备与土地转让一体化合同 10页

2025年度工伤赔偿协议书制定指南 8页

第一二章绪论抹灰工程tt 69页

2025年度宗教场所房屋租赁合同转让及宗教活动.. 9页

2025年度存量房手房购房合同房屋安全性能评估.. 9页

2025年度大棚种植病虫害防治与绿色防控合作协.. 9页

2025年度外墙落水管安装与智能控制系统集成合.. 9页

2025年度城市供水管道维修施工合同 8页

2025年度土地储备开发抵押借款协议 8页

2025年度园林景观树木移植与植物配置合同 9页

2025年度商业综合体粉刷工程施工合同 9页

有关租赁合同(企业类含特殊条款) 6页

有关旅游服务合同(杭州西湖)(浙江) 6页

2025年度医院物业管理与安全保障服务合同 10页

部门经理实用留人法 10页

2025年度别墅买卖中介居间服务合同 8页

2025年度冷链物流与生鲜超市战略合作框架协议.. 9页

部编版二年级语文上第一单元复习 13页

2025年度农业科技发展有限公司股权收购合同 8页

2025年度养老产业服务合同书协议书 9页

2025年度公司会计合同协议书(企业财务合规咨.. 9页

最新商铺租赁合同样本 6页

第三章内部审计程序 43页

最新农村离婚合同模板 6页

2025年度体育场馆装修合同解除及赛事保障服务.. 10页

2025年度传媒企业品牌形象设计与推广合同 9页