#include <stdlib.h>
#include <stdio.h>
#define maxsize 100
typedef char datatype;
typedef struct node {
datatype data;
struct node *lchild, *rchild;
} bitree;
bitree *CreateBiTree( ) {
bitree *T = NULL;
char ch;
ch = getchar( );
if (ch != '@') {
T = (bitree *)malloc(sizeof(bitree));
T->data = ch;
T->lchild = CreateBiTree();
T->rchild = CreateBiTree();
} else {
T = NULL;
}
return T;
}
int Depth(bitree *T) {
int depL, depR;
if (T != NULL) {
depL = Depth(T->lchild);
depR = Depth(T->rchild);
printf("%c", T->data);
if (depL >= depR)
return (depL + 1);
else
return (depR + 1);
}
return 0;
}
int main() {
bitree *p;
printf("建立树,按先序遍历序列输入结点\n");
printf("空结点为@,结束按回车\n");
p = CreateBiTree( );
printf("后序遍历输出为\n");
int deep = Depth(p);
printf("\n");
printf("二叉树的深度为:%d\n ", deep);
return 0;
}