中南民族大学管理学院学生实验报告
中南民族大学管理学院
学生实验报告
实验项目:二叉树的建立与遍历
课程名称: 数据结构
年 级: 2011
专 业:信息管理与信息系统
指导教师: ode m);//中序遍历
void PostOrder(pNode m);//后序遍历
pNode creat_1();//输入一个先序顺序的二叉树字符串
pNode creat();//按照先序遍历创建一个二叉树
char b[25];
int j;
int main()
{
pNode m=NULL ;
int i = 1,a;
while(i)
中南民族大学管理学院学生实验报告
{
printf("\n********请选择************\n");
printf(" 1 按先序遍历创建二叉树\n");
printf(" 2 按先序遍历遍历二叉树\n");
printf(" 3 按中序遍历遍历二叉树\n");
printf(" 4 按后序遍历遍历二叉树\n");
printf(" 输入以上数字之外的则退出");
printf("\n**************************\n");
printf("请输入:");
scanf("%d",&a);
switch (a)
{
case 1: m=creat_1(); break;
case 2: PreOrder(m); break;
case 3: InOrder(m); break;
case 4: PostOrder(m); break;
default : i=0;
}
}
}
pNode creat_1()
{
printf("请输入字符串:(例如ABC##DE#G##F###,#代表空)\n");
scanf("%s",b);
return creat();
}
pNode creat()
{
pNode m;
char ch;
ch=b[j];
j++;
scanf(&ch);//读入一个字符
if(ch=='#') return NULL;//构造空树
//构造新结点
m=(pNode)malloc(sizeof(Node));
m->data=ch;//生成根结点
中南民族大学管理学院学生实验报告
m->lchild=creat(); //构造左子树
m->rchild=creat(); //构造右子树
return m;
}
void PreOrder(pNode m)
{
if(!m) return;
else{
printf("%c ",m->data);
PreOrder(m->lchild);
PreOrder(m->rchild);}
}
void InOrder(pNode m)
{
if(!m) return;
else{
InOrder(m->lchild);
printf("%
中南民族大学信管二叉树-数据结构实验报告 来自淘豆网www.taodocs.com转载请标明出处.