#include <bits/stdc++.h>
#include<string.h>
using namespace std;
struct tree
{
int date;
tree *left;
tree *right;
};
tree *creat(tree *T, int sum)//建立排序二叉树
{
if(T==NULL)
{
T = new tree();
T->date = sum;
T->left = NULL;
T->right = NULL;
return T;
}
if(T->date > sum)//比根节点小的数放左边
T->left = creat(T->left, sum);
else T->right = creat(T->right, sum);//比根节点大的数放右边
return T;
}
int height(tree *T)//测量二叉树的深度
{
int LH, RH, H;
if(T == NULL) H = 0;
else
{
LH = height(T->left);
RH = height(T->right);
H = max(LH, RH)+1;
}
return H;
}
void show(tree *T)//中序遍历二叉树
{
if(T!=NULL)
{
cout<<T->date<<endl;
show(T->left);
show(T->right);
}
else return;
}
int main()
{
int n,i;
tree *root = NULL;
for(i = 0; i<10; i++)
{
cin>>n;
root = creat(root, n);
}
show(root);
cout<<endl;
cout<<height(root)<<endl;
return 0;
}
排序二叉树之中序输出,深度输出
最新推荐文章于 2024-05-24 10:39:37 发布