Я пытаюсь вычислить высоту дерева. Я doint с кодом, написанным ниже.Рассчитать высоту дерева
#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) Было предложено выполнить обход Postorder и использовать этот метод высоты для вычисления высоты. Любая конкретная причина?
Совет: код должен все отступы по крайней мере 4 пробелов, в противном случае плата не распознает его как код. –
Можете ли вы разместить ссылку на страницу? – dirkgently
Бах, я потратил несколько минут, пытаясь выяснить, что не так с кодом. Затем я дойду до конца вопроса и откройте замечание: «Это дает мне правильный результат». >. < – Mizipzor