我試圖解決樹中的問題,並陷入遞歸併編寫代碼。 但我不知道爲什麼它是這樣的!有人能幫如何編寫 給出了這樣的輸出 我的計劃是X = 0,Y = 0在二叉樹中遞歸
int height1(node *root,int x,int y)
{
int val;
if(root==NULL)
return 1;
else
{
x=x+height1(root->left,x,y);
y=y+height1(root->right,x,y);
printf("x=%d and y=%d %d\n",x,y,root->data);
if(x>y)
return x;
else
return y;
}
這只是一個粗略的工作,瞭解遞歸的流動。樹遍歷的 輸入爲50 40 70 45 30 44 48和值
x y root->data
1 1 30
2 1 44
4 1 48
3 4 45
1 4 40
5 1 70
4 5 50
它爲什麼會出這樣一來,在我的方式,它應該添加Y和X每一次這樣的值應該增加,
請給我一些建議,因爲每次我解決一個樹問題,我總是 卡在遞歸,任何人都可以建議什麼是正確的做法。
我明白,要弄清楚基礎條件是重要的,我知道如何找到。但不能得到輸出的結果。
我知道這裏有很多最有經驗的程序員 和我想,請給我一些建議,因爲我覺得他們也面臨着在遞歸一些問題,所以他們是如何解決this.How他們解決問題的遞歸當任何新的來。
我應該參考一些書還是應該解決一些程序。 所以請我想你的建議,所以我可以成爲這個好。
這將是一個很多更容易理解,如果你ATLEAST解釋是什麼(不完全)的代碼是應該做的 – Paul
這只是一個粗略的代碼來獲得程序的流程。當我試圖獲得樹的高度,並堅持這樣理解我寫了粗糙的代碼。 –