1、实验报告( 五) 专业名称课程名称批改教师主持教师实验成绩校外评阅教师实验名称 查找 使用主要设备 PC, VC+6.0 实验要求 1.掌握折半查找的算法步骤和实现方法; 2掌握二叉排序树的性质、 构造方法; 3按实验内容完成相关程序, 并用实例进行测试, 验证其正确性。实验报告内容: 实验5.1 折半查找l 设计程序代码如下:#include#include#define N 5struct studentchar name10;float avg;void insort(struct student s,int n)int low,hight,mid,k;char y10;float x;
2、low=1;hight=n;strcpy(y,s0.name );x=s0.avg ;while(lowsmid.avg )hight=mid-1;else low=mid+1;for(k=0;klow-1;k+)strcpy(sk.name,sk+1.name) ;sk.avg =sk+1.avg ;printf(%d,low);strcpy(slow-1.name ,y) ;slow-1.avg =x;void main()Struct student aN=caozh,96,cheng,95,zhao,93,wang,92,chen,91;struct student stuN;int
3、i;for(i=0;iN;i+)stui+1=ai;printf(初始 %d 位同学的信息表n,MAX);printf(排名 姓名 平均分数n);for(i=1;i=N;i+)printf(%d: %6s %3.2fn,i,stui.name,stui.avg);printf(n);printf(n);printf(请输入学生的姓名: );scanf(%s,stu0.name );printf(n);printf(请输入平均成绩: );scanf(%f,&stu0.avg );printf(n);insort(stu,N);printf(折半排序后同学的信息表n,MAX);printf(排名
4、姓名 平均分数n);for(i=0;i=N;i+)printf(%d: %6s %3.2fn,i+1,stui.name,stui.avg);printf(n);l 程序运行结果如下:实验5.2 二叉排序树的建立l 设计程序代码如下:#include#include#define MAX 5typedef struct Bnodeint key;struct Bnode *left;struct Bnode *right;Bnode;Bnode * btInsert(int x,Bnode *root);void Inorder(Bnode *root);void main()int i;in
5、t aMAX=60,40,70,20,80;Bnode * root=NULL;printf(按关键字序列建立二叉排序树n);for(i=0;iMAX;i+) printf(%d ,ai);printf(n);for(i=0;ikey=x;p-right=p-left=NULL;if(root=NULL)root=p;return p;q=root;while(flag=0)if(q-keyx)if(q-left!=NULL)q=q-left;elseq-left=p;flag=1;elseif(q-right!=NULL)q=q-right;elseq-right=p;flag=1;return root;void Inorder(Bnode *root) if(root!=NULL) Inorder(root-left); printf(%d ,root-key); Inorder(root-right); l 程序运行结果如下: