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年度通信设备供货与网络优化服务协议 10页

第二章企业的外部环境分析6604 40页

2025年度茶叶品牌加盟连锁管理服务合同 10页

2025年度自来水供应与管网老化改造合同 10页

2025年度职业经理人知识产权保护与运营合同 9页

2025年度网络安全应急响应服务合同-@-1 8页

2025年度绿色包装纸箱订购与环保责任承诺合同.. 9页

2025年度砼工班组劳务承包合同 10页

2025年度畜禽养殖场土地租赁合作合同 9页

金牌演讲口才-教师培训 19页

2025年度煤炭场地租赁与环境保护责任协议 8页

2025年度海鲜烧烤店租赁经营合同 9页

2025年度汽车租赁公司车辆股份转让及增值服务.. 9页

2025年度模具加工合同风险评估及应对协议 8页

2025年度智能设备试用及性能评估协议书 10页

2025年度智能安防合伙公司股权合作协议 9页

2025年度新能源汽车充电站停车场租赁合同 8页

2025年度新型城镇化工程渣土运输与环保治理合.. 8页

采购部门人员设置 52页

2025年度房屋新古典风格装修委托销售合同 9页

2025年度房产居间市场调研服务合同 9页

2025年度建筑行业增值税专用发票转让及结算合.. 8页

2025年度应届大学生食品科学与工程实习合同 7页

2025年度工厂企业安全保卫合作协议 9页

2025年度家政服务与家庭环保节能协议书 9页

2025年度实习生实习就业服务与职业技能培训协.. 8页

2025年度安全设施维护人工费用协议 8页

2025年度婚内夫妻共同子女教育及费用承担协议.. 8页

2025年度大型养殖场鸡蛋采购服务合同 9页

2025年度城市综合体项目房屋租赁独家代理合同.. 8页