在做数据结构试验的时候遇到了二叉树问题,现将二叉树的常用操作分享出来。
#include <stdio.h>
#include <stdlib.h>
typedef struct BNode
{
int data;
struct BNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatTree(BiTree *T); //创建一个二叉树
void welcome(); //欢迎界面
void PreOrderTraverse(BiTree T); //前序遍历
void InOrderTraverse(BiTree T); //中序遍历
void PostOrderTraverse(BiTree T); //后序遍历
void LevelTraverse(BiTNode *b); //层次遍历
int LeaveNode(BiTree T); //求叶子节点个数
int AllNode(BiTree T); //求所有节点个数
int TreeDeep(BiTree T); //求二叉树的深度
int GetMax(BiTree T); //最大元
int GetMin(BiTree T); //最小元
void main()
{
BiTree T;
printf("创建二叉树\n");
CreatTree(&T);
printf("前序遍历:\n");
PreOrderTraverse(T);
printf("\n");
printf("中序遍历:\n");
InO