#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct BiNode
{
char data;
BiNode *lchild,*rchild;
}BiNode,*BiTree;
BiTree CreatBiTree()//先序遍历创建二叉树
{
BiTree T;
char ch;
cin>>ch;
if(ch=='#')
T=NULL;
else
{
T=(BiTree)malloc(sizeof(BiNode));
T->data=ch;
T->lchild=CreatBiTree();
T->rchild=CreatBiTree();
}
return T;
}
int getdepth(BiTree T)//获取树T的深度
{
if(T==NULL) return 0;//当结点为空时,返回0
//当结点不为空时,返回1+max(左子树的深度,右子树的深度)//1为它自己
return 1+max(getdepth(T->lchild),getdepth(T->rchild));
}
int main()
{
BiTree T;
T=CreatBiTree();
int count=getdepth(T);
cout<<count;
return 0;
}
统计利用先序遍历创建的二叉树的深度
最新推荐文章于 2022-04-24 00:02:08 发布