다음 코드 과 약간 혼동되어 트리의 높이와 sum of n nos
을 재귀 적으로 찾는 코드가 아래에 있습니다. 재귀 횟수에 따라 lheight
과 rheight
이 저장하는 항목은 무엇입니까? '재귀 이해에 혼란이 있음
int findSum(int n){
int sum;
if(n <= 0) return 0;
else sum = findSum(n-1); // here
return sum;
}
그것은 않는 이유 0으로 출력을 인쇄 : I가 변경할 경우
int findSum(int n){
int sum;
if(n <= 0) return 0;
else sum = n + findSum(n-1);
return sum;
}
: 여기
int height(struct node* node)
{
if (node==NULL)
return 0;
else
{
lheight = height(node->left);
rheight = height(node->right);
if (lheight > rheight)
return(lheight+1);
else return(rheight+1);
}
}
하나 이상의 설명은, 그것이 n nos
의 합 출력 인 위의 트리 코드가 수행하는 경우 재귀의 수를 반환합니다. 당신이 다음
sum = 1 + findSum(n-1);
lheight
를 사용하는 두 번째 재귀 재귀의 수를 반환 할 것을 원하고 있기 때문에 재귀 트리 레벨을 반환 rheight
경우
http://stackoverflow.com/questions/717725/understanding-recursion?rq=1 – Pradheep
Bro 재귀 논리를 이해할 수 있지만 두 변수가 위의 두 변수를 어떻게 저장하는지 이해할 수 없습니다. 각 하위 트리 ... – abu
맨 위로 대답을 읽고 그의 설명과 함께 예제를 작동하십시오. 일단 당신 이이 두 가지로 끝나면 – Pradheep