数据结构:二叉树的基本操作

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:02:14
1、按先序创建二叉树
CreateBiTree

2、求深度
Depth
BiTreeDepth

3、四种遍历(先序/中序/后序/层序)
PreOrderTraverse
InOrderTraverse
PostOrderTraverse
LevelOrderTraverse

4、程序退出前必须销毁二叉树
DestroyBiTree

#include<stdio.h>
#include<stdlib.h>
#define ERROR 0
#define OK 1
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree CreateBiTree()
{ char i;
BiTree T;
i=getchar();
if(i=='#') T=NULL;
else
{ T=(BiTNode *)malloc(sizeof(BiTNode));
T->data=i;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
}
return T;
}
void PreOrderTraverse(BiTree T)
{//先序遍历
if(T!=NULL)
{
printf("%c->->->",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BiTree T)
{//中序遍历
if(T!=NULL)
{
InOrderTraverse(T->lchild);
printf("%c->->->",T->data);
InOrderTraverse(T->rchild);
}
}
void Pos