今年大二,在学数据结构,有什么不对的地方还请大佬们指正。
#include<stdio.h>
#include<stdlib.h>
typedef char elemtype;
struct BitNode{
elemtype data;
BitNode *lchild,*rchild;
};
void createtree(BitNode** T)
{
elemtype ch;
scanf("%c",&ch);
getchar();
if(ch=='#'){
(*T)=NULL;
}else{
(*T)=(BitNode*)malloc(sizeof(BitNode));
if(!(*T)){
printf("内存不够,创建失败!");
exit(1);
}
(*T)->data=ch;
printf("输入%c的左子树:",(*T)->data);
createtree(&((*T)->lchild));
printf("输入%c的右子树:",(*T)->data);
createtree(&((*T)->rchild));
}
}
int tree_deep(BitNode* T,int x=0,bool istemp=false)
{
int y;
if(T==NULL){
return x;
}else{
if(!istemp){
x++;
}
}
y=x;
x=tree_deep(T->lchild,x,istemp);
if(x!=y){
istemp=true;
}
x=tree_deep(T->rchild,x,istemp);
return x;
}
int main()
{
BitNode* T;
int x;
printf("请输入根树:");
createtree(&T);
x=tree_deep(T);
printf("这颗树的深度为:%d",x);
return 0;
}