我有一个非常简单的函数来找出一堆整数的最大非负值。我想将此函数转换为递归函数。 有几点要记住:堆栈上的递归函数
- 运行功能之前,我们已经初始化
num
,但还没有分配任何价值了。并请,我们不应该依赖于一个事实,即C的温度将自动在一定条件下分配0至num
- 运行函数的栈
s
为空后,我们必须存储在num
- 我的最大非负值 “M C和数据结构是初学者,所以请好:)
这是迭代函数:
void max_stack(stack *s, int *num){
*num = 0;
int aux = 0;
while (!emptyStack(*s)){
aux = top(*s);
pop(s);
if (aux>*num){
*num = aux;
}
}
}
当前存储的值,我不知道你为什么会想这个变换更大递归函数,当你现在的解决方案比递归函数更适合C语言时... –
@AnttiHaapala家庭作业需求也许? –
@AnttiHappala:我想更好地理解递归,并希望从迭代函数获得更多流畅的递归和相反的结果。就是这样。这个问题的目的是为了学习。 我列举的限制是确保两个函数100%相等。 – Peter