收藏 分销(赏)

2023年数据结构实验报告中央电大.doc

上传人:w****g 文档编号:9668356 上传时间:2025-04-02 格式:DOC 页数:8 大小:238.04KB 下载积分:6 金币
下载 相关 举报
2023年数据结构实验报告中央电大.doc_第1页
第1页 / 共8页
2023年数据结构实验报告中央电大.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
实验报告(五) 专业名称 课程名称 批改教师 主持教师 实验成绩 校外评阅教师 实验名称 查找 使用重要设备 PC, VC++6.0 实验规定 1.掌握折半查找的算法环节和实现方法; 2.掌握二叉排序树的性质、构造方法; 3.按实验内容完毕相关程序,并用实例进行测试,验证其对的性。 实验报告内容: 实验5.1 折半查找 l 设计程序代码如下: #include<stdio.h> #include<string.h> #define N 5 struct student{ char name[10]; float avg; } void insort(struct student s[],int n) { int low,hight,mid,k; char y[10]; float x; low=1; hight=n; strcpy(y,s[0].name ); x=s[0].avg ; while(low<=hight) { mid=(low+hight)/2; if(x>s[mid].avg ) hight=mid-1; else low=mid+1; } for(k=0;k<low-1;k++){ strcpy(s[k].name,s[k+1].name) ; s[k].avg =s[k+1].avg ; } printf("%d",low); strcpy(s[low-1].name ,y) ; s[low-1].avg =x; } void main() { Struct student a[N]= {{"caozh",96},{"cheng",95},{"zhao",93},{"wang",92},{"chen",91}}; struct student stu[N]; int i; for(i=0;i<N;i++) stu[i+1]=a[i]; printf("初始 %d 位同学的信息表\n",MAX); printf("排名 姓名 平均分数\n"); for(i=1;i<=N;i++) printf("%d: %6s %3.2f\n",i,stu[i].name,stu[i].avg); printf("\n"); printf("\n"); printf("请输入学生的姓名: "); scanf("%s",stu[0].name ); printf("\n"); printf("请输入平均成绩: "); scanf("%f",&stu[0].avg ); printf("\n"); insort(stu,N); printf("折半排序后同学的信息表\n",MAX); printf("排名 姓名 平均分数\n"); for(i=0;i<=N;i++) { printf("%d: %6s %3.2f\n",i+1,stu[i].name,stu[i].avg); } printf("\n"); } l 程序运营结果如下: 实验5.2 二叉排序树的建立 l 设计程序代码如下: #include<stdio.h> #include<stdlib.h> #define MAX 5 typedef struct Bnode { int key; struct Bnode *left; struct Bnode *right; }Bnode; Bnode * btInsert(int x,Bnode *root); void Inorder(Bnode *root); void main() { int i; int a[MAX]={60,40,70,20,80}; Bnode * root=NULL; printf("按关键字序列建立二叉排序树\n"); for(i=0;i<MAX;i++) printf("%d ",a[i]); printf("\n"); for(i=0;i<MAX;i++) root=btInsert(a[i],root); printf("中序遍历的二叉排序树\n"); Inorder(root); printf("\n"); } Bnode * btInsert(int x,Bnode * root) { Bnode *p,*q; int flag=0; p=(Bnode *)malloc(sizeof(Bnode)); p->key=x; p->right=p->left=NULL; if(root==NULL) { root=p; return p; } q=root; while(flag==0) { if(q->key>x) { if(q->left!=NULL) q=q->left; else { q->left=p; flag=1; } } else { if(q->right!=NULL) q=q->right; else { q->right=p; flag=1; } } } return root; } void Inorder(Bnode *root) { if(root!=NULL) { Inorder(root->left); printf("%d ",root->key); Inorder(root->right); } } l 程序运营结果如下:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 远程教育/电大

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服