#include "stdio.h"
#include "malloc.h"
#include <conio.h>
#include "stdlib.h"
typedef char TElemType;
//定义二叉树链表的结构体
typedef struct Node{
TElemType data;
struct Node *lchild,*rchild;
}BiNode,*BiTree;
//
void CreateBiTree(BiTree &p){
char c=getche();
if (c ==' ')
p=NULL;
else
{p=(BiTree)malloc(1*sizeof(BiNode));
if (p==NULL)
exit(0);
p->data=c;
CreateBiTree(p->lchild);
CreateBiTree(p->rchild);
}
}
//先序遍历
void PreOrder(BiTree p){
if(p != NULL)
{
printf("%c",p -> data);
PreOrder(p -> lchild);
PreOrder(p -> rchild);
}
}
//中序遍历
void InOrder(BiTree p){
if (p!= NULL)
{
InOrder(p->lchild);
printf("%c",p ->data);
InOrder(p->rchild);
}
}
void PostOrder(BiTree p)
{
if(p != NULL)
{
PostOrder(p->lchild);
PostOrder(p->rchild);
printf("%c",p->data);
}
}
//求二叉树的深度
int BiTreeDepth(BiTree p){
int height1,height2;
if(p == NULL)
return 0;
else{
height1 = BiTreeDepth(p->lchild);
height2 = BiTreeDepth(p->rchild);
if(height1 > height2)
return height1+1;
else
return height2+1;
}
}
int main(){
BiTree t;
CreateBiTree(t);
PreOrder(t);
printf("\n");
InOrder(t);
printf("\n");
PostOrder(t);
printf("\n");
int a;
a =BiTreeDepth(t);
printf("\n%d",a);
}
二叉树操作
最新推荐文章于 2024-07-13 23:16:13 发布