1.主要函数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//创建节点结构体
typedef struct node{
char data[16];//节点数据
struct node *L;//左节点
struct node *R;//右结点
}tree,*treeptr;
//先序方式创建节点
treeptr create()
{
char buf[16];
scanf("%s",buf);
if(strcmp(buf,"#")==0)
{
return NULL;
}
//创建节点空间
treeptr H=(treeptr)malloc(sizeof(tree));
if(H==NULL)
{
printf("节点创建失败\n");
return NULL;
}
strcpy(H->data,buf);
H->L = create();
H->R = create();
return H;
}
//先序遍历
void pri_show(treeptr H)
{
if(H==NULL)//判断节点是否为空
{
return ;
}
printf("%s",H->data);
pri_show(H->L);
pri_show(H->R);
}
//中序遍历
void mid_show(treeptr H)
{
if(H==NULL)//判断节点是否为空
{
return ;
}
mid_show(H->L);
printf("%s",H->data);
mid_show(H->R);
}
//后序遍历
void lat_show(treeptr H)
{
if(H==NULL)//判断节点是否为空
{
return ;
}
lat_show(H->L);
lat_show(H->R);
printf("%s",H->data);
}
int main()
{
treeptr H = create();//创建二叉树
pri_show(H);
putchar(10);
mid_show(H);
putchar(10);
lat_show(H);
putchar(10);
return 0;
}
2.测试文件
3.实现效果