#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
typedef struct node
{
char c;
struct node *left;
struct node *right;
}Node,*pNode;
void preOrder(pNode p)
{
if (p!=NULL)
{
putchar(p->c); //打印当前结点
preOrder(p->left); //打印左子结点
preOrder(p->right); //打印右子结点
}
}
void midOrder(pNode p)
{
if (p != NULL)
{
midOrder(p->left); //打印当前结点
putchar(p->c); //打印左子结点
midOrder(p->right); //打印右子结点
}
}
void LatOrder(pNode p)
{
if (p != NULL)
{
LatOrder(p->left); //打印当前结点
LatOrder(p->right); //打印左子结点
putchar(p->c); //打印右子结点
}
}
int main()
{
char c[N + 1] = "ABCDEFGHIJ";
int i, j;
pNode a[N];
//通过for循环,为每个要进树的结点申请空间,并将结点值放入
for (i = 0; i < N; i++)
{
a[i] = (pNode)calloc(1, sizeof(Node)); //申请空间
a[i]->c = c[i]; //申请空间后,将对应的元素值填入
}
for (j = 0,i=1; i<N ; i++)
{
if (NULL==a[j]->left)
{
a[j]->left = a[i];
}
else if(NULL==a[j]->right)
{
a[j]->right = a[i];
j++;
}
}
//打印前序、中序、后序判断二叉树是否创建成功
printf("前序遍历\n");
preOrder(a[0]);
printf("中序遍历\n");
midOrder(a[0]);
printf("后序遍历\n");
LatOrder(a[0]);
system("pause");
return 0;
}
层次建树
最新推荐文章于 2023-03-16 15:42:17 发布