#include<stdio.h> #include<stdlib.h> #include<malloc.h>
?typedef struct BitTree ?{ ? ? ?int date; ? ? ?struct BitTree *Lchild; ? ? ?struct ?BitTree *Rchild; ?}BitTree,*Tree;
?Tree createlink() ?{ ? ? ?int date; ? ? ?int temp; ? ? ?Tree T; ? ? ?scanf("%d",&date); ? ? ?temp=getchar();
? ? ?if(date==-1) ? ? ?{ ? ? ? ? ?return NULL; ? ? ?} ? ? ?else ? ? ?{ ? ? ? ? ?T=(Tree)malloc(sizeof(BitTree)); ? ? ? ? ?T->date=date;
? ? ? ? ?printf("请输入%d的左子树:",date); ? ? ? ? T->Lchild= createlink(); ? ? ? ? ?printf("请输入%d的右子树:",date); ? ? ? ? ?T->Rchild=createlink(); ? ? ? ? ?return T; ? ? ?} ?} ?void xian(Tree T) ?{ ? ? ?if(T==NULL) ? ? ?{ ? ? ? ? ?return; ? ? ?} ? ? ?printf("%d",T->date); ? ? ?xian(T->Lchild); ? ? ?xian(T->Rchild); ?} ? void zhong(Tree T) ?{ ? ? ?if(T==NULL) ? ? ?{ ? ? ? ? ?return; ? ? ?} ? ? ?zhong(T->Lchild); ? ? ?printf("%d",T->date);
? ? ?zhong(T->Rchild); ?} ? void hou(Tree T) ?{ ? ? ?if(T==NULL) ? ? ?{ ? ? ? ? ?return; ? ? ?}
? ? ?hou(T->Lchild); ? ? ?hou(T->Rchild); ? ? ?printf("%d",T->date); ?} ?int main() ?{ ? ? ?Tree T; ? ? ?printf("输入第一个数据:"); ? ? ?T=createlink(); ? ? ?printf("先序遍历:"); ? ? ?xian(T); ? ? ?printf("中序遍历:"); ? ? ?zhong(T); ? ? ?printf("后序遍历:"); ? ? ?hou(T); ? ? ?return 0; ?} ?
|