#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode{
int data ;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode,*BiTree;
void Print(BiTree a)
{
printf("%d ",a->data);
}
void Initial_preorder(BiTree a,int i){//初始化二叉树树,给树赋值
BiTree s;
if(i<=0){
a->data =i;
a->lchild =NULL;
a->rchild =NULL;
}else{
a->data=i;
printf("in I: %d\n",i);
s=(BiTree)malloc(sizeof(BiTNode));
a->lchild=s;
Initial_preorder(a->lchild,i-1);
s=(BiTree)malloc(sizeof(BiTNode));
a->rchild=s;
Initial_preorder(a->rchild,i-1);
}
}
void PreOrder(BiTree a){//先序遍历
if(a!=NULL){
printf("%d ",a->data);
PreOrder(a->lchild);
PreOrder(a->rchild);
}
}
void InOrder(BiTree a){//中序遍历
if(a!=NULL){
InOrder(a->lchild );
printf("%d ",a->data);
InOrder(a->rchild);
}
}
void PostOrder(BiTree a){//后序遍历
if(a!=NULL){
PoOrder(a->lchild);
PoOrder(a->rchild);
printf("%d ",a->data);
}
}
void LevelOrder(BiTree a){//层次遍历
}
void main(){
BiTNode a;
BiTree s=&a;
Initial_preorder(s,4);
printf("end\n");
PreOrder(s);
}