Java递归与迭代的优缺点
递归在某些算法中更难理解。一个可以自然地迭代表达的算法,如果递归地表达,可能就不那么容易理解了。 没有可移植的方法来判断深度递归可以在多大程度上不引起麻烦(机器有多少“堆栈空间”),也没有办法从太深的递归中恢复(“堆栈溢出”)。 你不能递归地做一些好事。例如,如果我要遍历一个二叉树,我可能想用For循环来完成: tree t; item *i; for (i = first (t); i != N
递归在某些算法中更难理解。一个可以自然地迭代表达的算法,如果递归地表达,可能就不那么容易理解了。 没有可移植的方法来判断深度递归可以在多大程度上不引起麻烦(机器有多少“堆栈空间”),也没有办法从太深的递归中恢复(“堆栈溢出”)。 你不能递归地做一些好事。例如,如果我要遍历一个二叉树,我可能想用For循环来完成: tree t; item *i; for (i = first (t); i != N