我之前发布过一个问题,但我并不清楚。我的混乱很抱歉,但如果有一个项目像什么,我的意思是:当下面的程序有2个递归语句时,如何执行递归?
TreeNode createMinBST(int arr[], int start, int end) {
if(end< start) return null;
int mid = (start+end)/2;
Treenode n= new Treenode(arr[mid]);
n.left= createMinBST(arr, start, mid-1) //LINE a
n.right= createMinBST(arr, mid+1, end); //LINE b
return n;
}
如何LINE和B线UNROLL或者它是如何工作(就像在编码采访书中说)? LINE a是否一直到基本情况并返回值,然后LINE b执行?或者这两个递归语句同时归结为基本情况?
如果有人能解释水平明智的路径创建从上面的代码中的最小BST,这将是真正有助于了解如何递归多个语句(这里2-线和B线)发生
谢谢很多
为什么不直接按照程序流程手动?或者通过在调试器中逐步观察真实情况。 – 2012-01-07 17:50:31
[多递归展开]的可能重复(http://stackoverflow.com/questions/8770492/multiple-recursion-unrolling) – Mat 2012-01-07 17:51:01
@ Mat-我在这里再次发布它,因为我的问题因为不够清晰而关闭。 – user807496 2012-01-07 17:51:55