【发布时间】:2010-02-17 08:07:49
【问题描述】:
我正在尝试计算一棵树的高度。我不喜欢下面写的代码。
#include<iostream.h>
struct tree
{
int data;
struct tree * left;
struct tree * right;
};
typedef struct tree tree;
class Tree
{
private:
int n;
int data;
int l,r;
public:
tree * Root;
Tree(int x)
{
n=x;
l=0;
r=0;
Root=NULL;
}
void create();
int height(tree * Height);
};
void Tree::create()
{
//Creting the tree structure
}
int Tree::height(tree * Height)
{
if(Height->left==NULL && Height->right==NULL)
{return 0;
}
else
{
l=height(Height->left);
r=height(Height->right);
if (l>r)
{l=l+1;
return l;
}
else
{
r=r+1;
return r;
}
}
}
int main()
{
Tree A(10);//Initializing 10 node Tree object
A.create();//Creating a 10 node tree
cout<<"The height of tree"<<A.height(A.Root);*/
}
它给了我正确的结果。 但是在some posts(googled page) 中建议做一个后序遍历并使用这个高度方法来计算高度。有什么具体原因吗?
【问题讨论】:
-
提示:代码必须全部缩进至少4个空格,否则板子不识别为代码。
-
你能发一个链接到页面吗?
-
呸,我花了几分钟试图找出代码出了什么问题。然后我到达问题的结尾,发现“它给了我正确的结果”的评论。 >.
-
@Sandeep:我刚刚为您修复了缩进/格式。您的编辑取消了整个更改。请确保您保留有用的编辑。
标签: c++ data-structures binary-search-tree