一、头文件
二、二叉树的结构
三、递归创建二叉树
四、前序遍历
五、中序遍历
六、后序遍历
七、主函数
一、头文件
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 5
二、二叉树的结构
typedef struct BTnode
{
int data;
struct BTnode *left;
struct BTnode *right;
}*BTnodePtr;
三、递归创建二叉树
//递归创建二叉树
BTnodePtr CreateList()
{
int data;
int temp;
BTnodePtr T;
scanf("%d",&data);//输入数据
temp = getchar();
if(data == -1)
{
return NULL;
}
else
{
T = (BTnodePtr)malloc(sizeof(struct BTnode));
T->data = data;
printf("请输入%d的左孩子:\n",data);
T->left = CreateList();
printf("请输入%d的右孩子:\n",data);
T->right = CreateList();
}
}
四、前序遍历
void qian(BTnodePtr T)
{
if(T == NULL)
{
return ;
}
printf("%d ",T->data);
qian(T->left);
qian(T->right);
}
五、中序遍历
void zhong(BTnodePtr T)
{
if(T == NULL)
{
return ;
}
zhong(T->left);
printf("%d ",T->data);
zhong(T->right);
}
六、后序遍历
void hou(BTnodePtr T)
{
if(T == NULL)
{
return ;
}
hou(T->left);
hou(T->right);
printf("%d ",T->data);
}
七、主函数
void main()
{
BTnodePtr Tree;
printf("请输入第一个结点的数据:\n");
Tree = CreateList();
printf("前序遍历:\n");
qian(Tree);
printf("\n中序遍历:\n");
zhong(Tree);
printf("\n后序遍历:\n");
hou(Tree);
}