一个雏形
#include <stdio.h>
typedef struct Tree
{
char data;
struct Tree* lChild,*rChild;
};
int main()
{
/*函数声明*/
struct Tree* InitTree();
void CreateTree(struct Tree* t);
void SearchTreeA(struct Tree* t);
void SearchTreeB(struct Tree* t);
void SearchTreeC(struct Tree* t);
/*程序开始*/
struct Tree* t=InitTree();
CreateTree(t);
SearchTreeA(t);
printf(" front search ok!!/n");
SearchTreeB(t);
printf(" mid search ok!!/n");
SearchTreeC(t);
printf(" last search ok!!/n");
getch();
return 0;
}
/*初始化树*/
struct Tree* InitTree()
{
struct Tree* t;
t->data = 'A';
t->lChild = NULL;
t->rChild = NULL;
return t;
}
/*自动建立树一个例子!!
A
/ /
B C
// //
D E F G
/
H
*/
void CreateTree(struct Tree* t)
{
printf(" A /n");
printf(" / // /n");
printf(" B C /n");
printf(" /// /// /n");
printf(" D E F G /n");
printf(" / /n");
printf(" H /n");
if(t->data !='A') /*判断是否初始化树*/
{
printf("a tree didn't initlized/n");
return ;
}
else
{
t->lChild = malloc(sizeof(struct Tree));
t->lChild->data = 'B';
t->rChild = malloc(sizeof(struct Tree));
t->rChild->data = 'C';
t->lChild->lChild = malloc(sizeof(struct Tree));
t->lChild->lChild->data='D';
t->lChild->lChild->lChild=NULL;
t->lChild->lChild->rChild=NULL;
t->lChild->rChild = malloc(sizeof(struct Tree));
t->lChild->rChild->data='E';
t->lChild->rChild->lChild=NULL;
t->rChild->lChild = malloc(sizeof(struct Tree));
t->rChild->lChild->data='F';
t->rChild->lChild->lChild=NULL;
t->rChild->lChild->rChild=NULL;
t->rChild->rChild = malloc(sizeof(struct Tree));
t->rChild->rChild->data='G';
t->rChild->rChild->lChild=NULL;
t->rChild->rChild->rChild=NULL;
t->lChild->rChild->lChild = malloc(sizeof(struct Tree));
t->lChild->rChild->lChild->data='H';
t->lChild->rChild->lChild->lChild=NULL;
t->lChild->rChild->lChild->rChild=NULL;
}
}
void SearchTreeA(struct Tree* t)
{
if(t==NULL)return;
printf("%c",t->data);
SearchTreeA(t->lChild);
SearchTreeA(t->rChild);
}
void SearchTreeB(struct Tree* t)
{
if(t==NULL)return;
SearchTreeB(t->lChild);
printf("%c",t->data);
SearchTreeB(t->rChild);
}
void SearchTreeC(struct Tree* t)
{
if(t==NULL)return;
SearchTreeC(t->lChild);
SearchTreeC(t->rChild);
printf("%c",t->data);
}