我最近在学习数据结构。在Mark Allen Weiss的书《数据结构与算法分析(C语言版)》中,为什么他在第三章中说尾递归是递归的不良用例,最好不要使用呢?但是我在网上看到很多人说它很有用。
我最近在学习数据结构。在Mark Allen Weiss的书《数据结构与算法分析(C语言版)》中,为什么他在第三章中说尾递归是递归的不良用例,最好不要使用呢?但是我在网上看到很多人说它很有用。
与任何递归一样,除非您的编译器可以将其优化掉(请检查此),否则它将消耗堆栈帧。对于大量输入,这可能会导致堆栈溢出。
一些程序员对递归感到反感,并且知道尾递归始终可以转换为循环,因此认为它总是应该这样做。