#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef int Status;
#define OK 1
#define ERROR 0
#define OVERFLOW -1
typedef struct BiNode
{
TElemType data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
Status CreatTree(BiTree &T)
{
TElemType ch;
scanf("%c",&ch);
if(ch=='*')
T=NULL;
else
{
T=(BiTree)malloc(sizeof(BiNode));
if(!T)
exit(OVERFLOW);
T->data=ch;
CreatTree(T->lchild);
CreatTree(T->rchild);
}
return OK;
}
int HeightTree(BiTree T)
{
if(!T)
return 0;
else
{
if(T->lchild==NULL&&T->rchild==NULL)
return 1;
else
{
return 1+(HeightTree(T->lchild)>HeightTree(T->rchild)?HeightTree(T->lchild):HeightTree(T->rchild));
}
}
}
Status PostOrder(BiTree T)
{
if(!T)
return ERROR;
else
{
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%c",T->data);
return OK;
}
}
int main()
{
BiTree T;
CreatTree(T);
PostOrder(T);
printf("\n");
int height=HeightTree(T);
printf("%d\n",height);
return 0;
}
二叉树的建立
最新推荐文章于 2022-11-09 00:58:40 发布