#include <stdio.h>
#include <malloc.h>
typedef char ElemType;
typedef struct Node
{
ElemType data;
Node *Lchild,*Rchild;
} BiTNode,*BiTree;
int depth2=0;
BiTree CreateBiTree();//建立二叉树
int PostTreeDepth(BiTree T);//后序遍历二叉树高度
void PreTreeDepth(BiTree T,int h);//先序遍历二叉树高度
int main(void)
{
BiTree root=CreateBiTree();
int depth1=PostTreeDepth(root);
printf("%d\n",depth1);
PreTreeDepth(root,1);
printf("%d\n",depth2);
return 0;
}
BiTree CreateBiTree()//建立二叉树
{
ElemType x;
BiTree T;
scanf("%c",&x);
if(x=='#')
T=NULL;
else
{
T=(BiTree)malloc(sizeof(BiTNode));
T->data=x;
T->Lchild=CreateBiTree();
T->Rchild=CreateBiTree();
}
return T;
}
int PostTreeDepth(BiTree T)//后序遍历二叉树高度
{
int hl,hr,max;
if(T!=NULL)
{
hl=PostTreeDepth(T->Lchild);
hr=PostTreeDepth(T->Rchild);
max=hl>hr?hl:hr;
return max+1;
}
else
return 0;
}
void PreTreeDepth(BiTree T,int h)//先序遍历二叉树高度
{
if(T!=NULL)
{
if(h>depth2)
depth2=h;
PreTreeDepth(T->Lchild,h+1);
PreTreeDepth(T->Rchild,h+1);
}
}
求二叉树高度
最新推荐文章于 2024-05-23 21:23:50 发布
本文介绍了一种使用C语言实现二叉树结构的方法,并通过后序遍历和先序遍历来计算二叉树的高度。文章提供了完整的源代码示例,展示了如何创建二叉树并计算其高度。
590

被折叠的 条评论
为什么被折叠?



