我试图解决树中的问题,并陷入递归并编写代码。 但我不知道为什么它是这样的!有人能帮如何编写 给出了这样的输出 我的计划是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
这只是一个粗略的代码来获得程序的流程。当我试图获得树的高度,并坚持这样理解我写了粗糙的代码。 –