只有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈()
A.对
B.错
正确答案是 B
递归工作栈里面包括返回地址、本层的局部变量和递归调用的形参代换用实参,所以正常情况下,无论递归过程有没有使用局部变量,转换为非递归过程都需要用栈来模拟这个递归调用过程
大佬,能转载下吗?
学到了,原来是这样
表示题目读的不太懂..
举个例子,求阶乘递归转非递归就没有用到栈。
递归过程转换为非递归过程,一般都要用栈来模拟这个过程调用
递归工作栈里面包括返回地址、本层的局部变量和递归调用的形参代换用实参,所以正常情况下,无论递归过程有没有使用局部变量,转换为非递归过程都需要用栈来模拟这个递归调用过程 当然,有一些特殊递归不用栈就可以直接转换,比如尾递归、常系数递推等,无论是否有局部变量
多线程中sleep()和wait()方法的区别
B2C网站上促销价格出错了,如何做危机公关?
cookies,sessionStorage 和 localStorage 的区别?
微信公众号中服务号和订阅号合二为一,你怎么看?
大佬,能转载下吗?
学到了,原来是这样
表示题目读的不太懂..
举个例子,求阶乘递归转非递归就没有用到栈。
递归过程转换为非递归过程,一般都要用栈来模拟这个过程调用
递归工作栈里面包括返回地址、本层的局部变量和递归调用的形参代换用实参,所以正常情况下,无论递归过程有没有使用局部变量,转换为非递归过程都需要用栈来模拟这个递归调用过程
当然,有一些特殊递归不用栈就可以直接转换,比如尾递归、常系数递推等,无论是否有局部变量