| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 437 人关注过本帖
标题:郁闷!递归问题
只看楼主 加入收藏
chllcy
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-7
收藏
 问题点数:0 回复次数:2 
郁闷!递归问题

#include "stdafx.h"
#include "iostream"
#include"stdio.h"
using namespace std;

#define MAXSIZE 20
typedef int listarr[MAXSIZE];
void listorder(listarr list, int left, int right)
{
int mid;
if (left<=right)
{ mid=(left+right)/2;
printf("%4d",list[mid]);
listorder(list,left,mid-1);
listorder(list,mid+1,right);
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int listarr[MAXSIZE]={18,32,4,9,26,6,10,30,12,8,45};
int left=0,right=10;
listorder(listarr,left,right);
system("pause");
return 0;
}

就是这个程序,本人用单步调试还是搞不明白它这里进栈,出栈的时候,请高手给我指点一下这个程序,执行到哪句会进栈(进入的数值是多少),到哪句时出栈(出栈值是多少).高手给我指点一下详细的执行过程!谢谢了,小弟已经弄了2个晚上了,实在吃不消了!

搜索更多相关主题的帖子: 递归 
2006-10-21 00:38
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
那里有栈/??
就是递归
一次一次调用啊

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-21 10:38
chllcy
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-7
收藏
得分:0 
递归中不是有回溯吗?这时就要先进栈保存回溯点,后出栈啊
复杂递归问题在求解的过程中无法保证求解动作一直向前,往往需要设置一些回溯点,当求解无法进行下去或当前处理的工作已经完成时,必须退回到所设置的回溯点,继续问题的求解。因此,在使用非递归方式实现一个复杂递归问题的算法时,经常使用栈来记录和管理所设置的回溯点。
2006-10-21 11:03
快速回复:郁闷!递归问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011510 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved