#include<iostream>
using namespace std;
typedef struct BiTNode
{
char data;
struct BiTNode* lchild, * rchild;
}BiTNode, * BiTree;
void CreatBiTree(BiTree& T, char e)
{
if (T == NULL)
{
T = new BiTNode;
T->data = e;
T->lchild = NULL;
T->rchild = NULL;
}
else
{
if (T->data < e)
CreatBiTree(T->rchild, e);
else
CreatBiTree(T->lchild, e);
}
}
void InOrder(BiTree T)
{
if (T)
{
InOrder(T->lchild);
cout << T->data;
InOrder(T->rchild);
}
}
int Depth(BiTree T)
{
if (!T)
return 0;
else if (!T->lchild && !T->rchild)
return 1;
return Depth(T->lchild) >= Depth(T->rchild) ? Depth(T->lchild) + 1 : Depth(T->rchild);
}
int main()
{
BiTree T;
T = NULL;
int n;
cin >> n;
char e;
while (n--)
{
cin >> e;
CreatBiTree(T, e);
}
InOrder(T);
int k = Depth(T);
cout << k << endl;
return 0;
}
求二叉树树高(c++)
于 2022-03-28 18:10:56 首次发布