#inlude<stdio.h>
#include<stdlib.h>
typedef struct student
{
int num;
struct student *left,*right;
}Stu,*PStu;
PStu create_tree(PStu proot)
{
int n;
scanf("%d",&n);
if(n<=0)
proot=NULL;
else
{
proot=malloc(sizeof(Stu));//利用递归的方式先序创建二叉树
proot->num=n;
proot->left=create_tree(proot->left);
proot->right=create_tree(proot->right);
}
return proot;
}
//先序遍历
void pre_show(PStu ptr)
{
if(ptr!=NULL)
{
printf("%d\t",ptr->num);
pre_show(ptr->left);
pre_show(ptr->right);
}
}
//中序遍历
void mid_show(PStu ptr)
{
if(ptr!=NULL)
{
mid_show(ptr->left);
printf("%d\t",ptr->num);
mid_show(ptr->right);
}
}
//后序遍历
void aft_show(PStu ptr)
{
if(ptr!=NULL)
{
aft_show(ptr->left);
aft_show(ptr->right);
printf("%d\t",ptr->num);
}
}
int main()
{
PStu root;
PStu root2[100];
printf("按照先序创建二叉树:\n");
root=create_tree(root);
printf("先序遍历\n");
pre_show(root);
printf("\n");
printf("中序遍历\n");
mid_show(root);
printf("\n");
printf("后序遍历\n");
aft_show(root);
printf("\n");
}
创建以及遍历二叉树
最新推荐文章于 2022-12-10 15:58:07 发布