求二叉树的深度

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include
#define NULL 0
typedef struct ECshu
{
struct ECshu *lchild;
struct ECshu *rchild;
char data;
}*linkecshu;


linkecshu Creatshu(linkecshu &root)
{
char s1;
scanf("%c",&s1);
if (s1==' ') root=NULL;
else
{
if((root=(linkecshu)malloc(sizeof(struct ECshu))))
{
root->data=s1;
Creatshu(root->lchild);
Creatshu(root->rchild);
}

}
return root;

}
void Printecshu(linkecshu &root)//这里肯定没有错误。
{
if(root)
{
Printecshu(root->lchild);
printf("%c",root->data);
Printecshu(root->rchild);
}
}
int Depth(linkecshu root)// 返回二叉树的深度
{ int depthval,depthLeft,depthRight;
if ( !root) depthval = 0;
else {
depthLeft = Depth( root->lchild );
depthRight= Depth( root->rchild );
depthval =1+(depthLeft > depthRight ?depthLeft : depthRight);
}
return depthval;
}



void main()
{
linkecshu r,h;
int sd;
printf("请输入您要建立的二叉树的各项数据元素:\n");
h=Creatshu(r);
printf("您输入的二叉树为:\n");
Printecshu(h);
printf("\n");
sd=Depth(r);
printf("二叉树深度为%d",sd);
getchar();
getchar();
}

相关文档
最新文档