递归与迭代
请教递归与迭代可以相互转换,是在哪本算法书中讲的?(书名和作者)最近想深入了解这方面的问题,请大家帮忙!谢谢!!
[解决办法]
多数书都讲吧
[解决办法]
理论上,所有递归都可以改造成非递归算法(就是你说的迭代)
就是利用一个堆栈数据结构存储参数,这些参数原本是各层递归的输入参数
如果是尾递归,则不需要堆栈
[解决办法]
计算机算法基础(第三版),华中科技大学出版社 有相应章节的
[解决办法]
int max(int a[], int n)
{
int x = a[0], i;
for (i = 1; i < n; ++i) {
if (x < a[i])
x = a[i];
}
return x;
}
int max(int a[], int n)
{
int x;
if (1 == n)
return a[0];
x = max(a, n - 1);
return x > a[n - 1] ? x : a[n - 1];
}