一家懂得用细节留住客户的3年潮牌老店我必须支持!➕🛰:luyao1931

数据结构-二叉树操作(创建、先序、中序、后序遍历、计算叶子节点数目、计算二叉树深度、左右子树交换、随机数列产生排序树、查找结点、删除节点、广度遍历、非递归先序遍历)C语言源码(全)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define null 0
#define ElemType int
#define STACK_SIZE 100
#define STACK_RE_SIZE 10
#define nothing 0
typedef struct Binode{
ElemType data;
struct Binode *lchild,*rchild,*parent;
}Binode,*Bitree;
int deep;
int node;
int tree[12][50];
int troot;
void init(Bitree &T)
{
T=null;
}
void great(Bitree &T,Bitree &I)
{
int n;
scanf("%d",&n);
if(n==nothing)
T==null;
else
{
T=(Bitree)malloc(sizeof(Binode));
T->lchild=null;
T->rchild=null;
T->data=n;
T->parent=I;
great(T->lchild,T);
great(T->rchild,T);
}
}
void destory(Bitree &T)
{
if(T)
{
if(T->lchild)
destory(T->lchild);
if(T->rchild)
destory(T->rchild);
free(T);
}
}
void pre_tra(Bitree T)
{
if(T)
{
printf("%d ",T->data);
pre_tra(T->lchild);
pre_tra(T->rchild);
}
}
void in_tra(Bitree T)
{
if(T)
{
in_tra(T->lchild);
printf("%d ",T->data);
in_tra(T->rchild);
}
}
void pos_tra(Bitree T)
{
if(T)
{
pos_tra(T->lchild);
pos_tra(T->rchild);
printf("%d ",T->data);
}
}
int pre_node(Bitree T)
{
if(T)
{
if(T->lchild==null&&T->rchild==null) node++;
pre_node(T->lchild);
pre_node(T->rchild);
}
return node;
}
int pre_deep(Bitree T)
{
if(T)
{
pre_deep(T->lchild);
pre_deep(T->rchild);
deep++;
}
return deep;
}
void exchange(Bitree T)
{
if(T)
{
Bitree t;
t=T->lchild;
T->lchild=T->rchild;
T->rchild=t;
exchange(T->lchild)