发布时间 : 星期六 文章计算机软件技术基础实验报告更新完毕开始阅读
printf(\请输入数据:\); scanf(\,&n); getchar(); insert(n,1); pre(); }
void chudui() { }
void main() { do
{printf(\选择你要的操作入栈出栈入队出队:\\n\); scanf(\,&n); getchar(); switch(n) { case 1: }
printf(\是否继续y/n:\\n\); scanf(\,&frag); getchar(); }while(frag=='y');
{printf(\入栈操作\); push();printf(\);}break; {
printf(\出栈操作\); pop();printf(\);}break; {printf(\入队操作\);
rudui();printf(\);}break; {printf(\出队操作\);
chudui();printf(\);}break; char frag='y';int n; creat(); delet(num); num--; pre();
case 2:
case 3:
case 4:
default:printf(\);
9
}
实验3 二叉树的构造
一、实验目的与基本要求
熟练掌握二叉树的构造方法。
二、实验条件
1.硬件:微机
2.软件:操作系统和C语言系统
三、实验方法
确定存储结构后,上机调试二叉树的构造方法。
四、实验内容
设计一个读入一串整数构成一棵二叉树的程序。 (深度至少为2) 实验代码:
#include
struct btnode //二叉树结构体 { };
struct btnode *creatbt(struct btnode *bt,int k) //建立二叉树 {
struct btnode *p,*t;
t=(struct btnode *)malloc(sizeof(struct btnode)); printf(\输入元素(输入时结束所在分枝):\); char b; scanf(\,&b); getchar(); if(b!='0') {
p=(struct btnode *)malloc(sizeof(struct btnode)); p->d=b;p->lchild=NULL;p->rchild=NULL; char d;
struct btnode *lchild; struct btnode *rchild;
10
if(k==0) t=p;
if(k==1) bt->lchild=p; if(k==2)
bt->rchild=p; creatbt(p,1); creatbt(p,2);
}
return t;
}
void pretrav(struct btnode *bt) { if(bt!=NULL) { printf(\,bt->d); pretrav(bt->lchild); pretrav(bt->rchild);
} return;
}
void intrav(struct btnode *bt) { if(bt!=NULL) { intrav(bt->lchild); printf(\,bt->d); intrav(bt->rchild); } return;
}
void postrav(struct btnode *bt) { if(bt!=NULL) { postrav(bt->lchild); postrav(bt->rchild); printf(\,bt->d); } return;
}
int main() {
struct btnode *m;char frag='y'; //前序遍历//中序遍历 //后序遍历 11
}
int s; do {
printf(\请选择\\n1、建立二叉树\\n2、前序遍历\\n3、中序遍历\\n4、后序遍历\\n5、退出\\n\); scanf(\,&s); getchar(); switch(s) { }
case 1:m=creatbt(0,0);break; case 2:pretrav(m);break; case 3:intrav(m);break; case 4:postrav(m);break; default: {
printf(\是否继续\\n y/n\); scanf(\,&frag); getchar();
};break;
}while(frag=='y');
12