#include <stdio.h>
#include <stdlib.h>
#define elemTpye int
typedef struct BitNode{
elemTpye data;
struct BitNode *lchild,*rchild;
}BitNode,*pBitNode;
void CreateBTree(pBitNode b){
b->data= 1;
b->lchild = (pBitNode)malloc(sizeof(BitNode));
b->rchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->data = 2;
b->lchild->lchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->lchild->data =4;
b->lchild->lchild->lchild =NULL;
b->lchild->lchild->rchild =NULL;
b->lchild->rchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->rchild->data =5;
b->lchild->rchild->lchild = NULL;
b->lchild->rchild->rchild = NULL;
b->rchild->data =3;
b->rchild->lchild = (pBitNode)malloc(sizeof(BitNode));
b->rchild->lchild->data =6 ;
b->rchild->lchild->lchild = NULL;
b->rchild->lchild->rchild = NULL;
b->rchild->rchild = NULL;
}
//读取节点的数据
void displayData(pBitNode Node){
printf("%d ",Node->data);
}
//先序遍历
void pretraverse(pBitNode T){
if(T){
displayData(T);
pretraverse(T->lchild);
pretraverse(T->rchild);
}
}
//中序遍历
void intraverse(pBitNode T){
if(T){
intraverse(T->lchild);
displayData(T);
intraverse(T->rchild);
}
}
//后序遍历
void posttraverse(pBitNode T){
if(T){
posttraverse(T->lchild);
posttraverse(T->rchild);
displayData(T);
}
}
int main(){
pBitNode btree = (pBitNode)malloc(sizeof(BitNode));
CreateBTree(btree);
//先序遍历
pretraverse(btree);
printf("\n");
//中序遍历
intraverse(btree);
printf("\n");
//后序遍历
posttraverse(btree);
printf("\n");
return 0;
}
#include <stdlib.h>
#define elemTpye int
typedef struct BitNode{
elemTpye data;
struct BitNode *lchild,*rchild;
}BitNode,*pBitNode;
void CreateBTree(pBitNode b){
b->data= 1;
b->lchild = (pBitNode)malloc(sizeof(BitNode));
b->rchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->data = 2;
b->lchild->lchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->lchild->data =4;
b->lchild->lchild->lchild =NULL;
b->lchild->lchild->rchild =NULL;
b->lchild->rchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->rchild->data =5;
b->lchild->rchild->lchild = NULL;
b->lchild->rchild->rchild = NULL;
b->rchild->data =3;
b->rchild->lchild = (pBitNode)malloc(sizeof(BitNode));
b->rchild->lchild->data =6 ;
b->rchild->lchild->lchild = NULL;
b->rchild->lchild->rchild = NULL;
b->rchild->rchild = NULL;
}
//读取节点的数据
void displayData(pBitNode Node){
printf("%d ",Node->data);
}
//先序遍历
void pretraverse(pBitNode T){
if(T){
displayData(T);
pretraverse(T->lchild);
pretraverse(T->rchild);
}
}
//中序遍历
void intraverse(pBitNode T){
if(T){
intraverse(T->lchild);
displayData(T);
intraverse(T->rchild);
}
}
//后序遍历
void posttraverse(pBitNode T){
if(T){
posttraverse(T->lchild);
posttraverse(T->rchild);
displayData(T);
}
}
int main(){
pBitNode btree = (pBitNode)malloc(sizeof(BitNode));
CreateBTree(btree);
//先序遍历
pretraverse(btree);
printf("\n");
//中序遍历
intraverse(btree);
printf("\n");
//后序遍历
posttraverse(btree);
printf("\n");
return 0;
}