CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

关于递归的非递归实现?

楼主thisismq(关外的雪)2003-09-02 20:48:24 在 C/C++ / C语言 提问

我有一个问题,就是对于递归问题,除了用栈来模拟以外,是不是可以用循环非递归来做呢?  
  你如汉诺塔>?  
  是不是可以用循环非递归来做呢>?> 问题点数:0、回复次数:11Top

1 楼zhuixe(竹子)回复于 2003-09-02 20:58:38 得分 0

可以,递规都可以用循环来实现,书上有例子Top

2 楼thisismq(关外的雪)回复于 2003-09-02 21:18:10 得分 0

请问那本书?  
        可以请教一下吗?  
  Top

3 楼neubird(带发修行的猪)回复于 2003-09-02 22:30:26 得分 0

不同意,不同意,并不是所有的递归都可以用循环来做的,只有尾递归才可以吧?  
  汉诺塔应该不可以用循环来做的。Top

4 楼icbm(雪狼)回复于 2003-09-02 23:42:53 得分 0

 
  所有的递归程序都可以用非递归程序来实现。  
   
  清华大学版的《数据结构》里有很详细的做法,把递归程序改写成非递归程序。  
   
  主要思想就是自已建立一个栈,来处理函数的局部变量。  
  Top

5 楼lyff8neo(对不起,我对你忠诚,因为你是c++)回复于 2003-09-03 00:38:28 得分 0

都可以用栈来实现的打!  
  不过用循环就不一定了啊!Top

6 楼cnxiaohai(相声独一处(回归,为了编程,为了C,为了CSDN))回复于 2003-09-03 01:09:18 得分 0

汉诺塔  
   
  好像只能用的归Top

7 楼thisismq(关外的雪)回复于 2003-09-03 09:48:53 得分 0

什么递归可以称得上是尾递归呢???  
  比如:用递归调用实现n!和用循环实现n!就是一样。  
  Top

8 楼bestsmoke((嘿嘿))回复于 2003-09-03 12:27:21 得分 0

汉诺只能递归Top

9 楼csdn5211(不同)回复于 2003-09-03 15:07:24 得分 0

用循环当然可以,但是一定要用栈。Top

10 楼ZhangYv(迎着朝阳,走向地狱)回复于 2003-09-03 15:25:38 得分 0

http://expert.csdn.net/Expert/topic/2207/2207612.xml?temp=.6097528  
   
  程序结构上的递归算法和非递归算法。    
  利用模拟堆栈,是可以转换的。  
   
  数学逻辑上的递归算法和非递归算法。  
  有时候可以转化,但并不是都能相互转换的,比如双递归函数是不存在非递归的数学逻辑结构的。Top

11 楼fogeye(雾眼)回复于 2003-09-03 16:15:13 得分 0

解释一下什么情况下是双递归?Top

相关问题

  • 快速排序的非递归实现
  • 一个简单问题,怎样用非递归来实现这个递归函数?
  • 递归程序的非递归化
  • 递归化非递归问题
  • 如何实现非递归调用的二叉树的后序遍历?
  • 如何用非递归的方法实现对二叉树的后序遍历
  • 非递归的方式(用栈实现回溯法)生成全排列
  • 求助:递归的设计与实现
  • 用递归实现树 算法
  • 如何实现这个递归算法?

关键词

  • 算法
  • 递归
  • 实现
  • 程序
  • 就是

得分解答快速导航

  • 帖主:thisismq

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo