#include <iostream>
using namespace std;
//创建树节点结构体
typedef struct TreeNode
{
int data_in;
TreeNode *m_left;
TreeNode *m_right;
}*BitTree,bitTree;
//树高度
int TreeHight(BitTree &bittree);
//创建树节点
void Create_BitTree(BitTree &bittree);
int main()
{
BitTree bittree;
Create_BitTree(bittree);
int hight=TreeHight(bittree);
system("pause");
return 0;
}
void Create_BitTree(BitTree &bittree)
{
int data_in;
BitTree treeCreate;
cin>>data_in;
//0的时候为null
if (data_in==0)
{
bittree=NULL;
return;
}
//中左右创建
else
{
treeCreate=new bitTree;
if (treeCreate==NULL)
{
exit(0);
}
treeCreate->data_in=data_in;
bittree=treeCreate;
Create_BitTree(treeCreate->m_left);
Create_BitTree(treeCreate->m_right);
}
}
int TreeHight(BitTree &bittree)
{
//左右子树的的高度
int temp_hight_left;
int temp_hight_right;
//根节点返回0
if (bittree==NULL)
{
return 0;
}
//左节点高度
temp_hight_left=TreeHight(bittree->m_left);
temp_hight_left=temp_hight_left++;
//右子树的高度
temp_hight_right=TreeHight(bittree->m_right);
temp_hight_right=temp_hight_right++;
//判读左右子树的高度,取最大返回
if (temp_hight_left>temp_hight_right)
{
return temp_hight_left;
}
else
{
return temp_hight_right;
}
}
二元树的深度
最新推荐文章于 2022-09-26 10:08:39 发布