数据结构实验指导书(2016)(2)
sum+=sub[i].subject_grades; }
average=sum/10;
printf(\}
void subjct_gtaverage() {
int i,flag;
double average,sum=sub[0].subject_grades; for(i=1;i<10;i++) {
sum+=sub[i].subject_grades; }
average=sum/10; for(i=0;i<10;i++) {
if(sub[i].subject_grades>average) {
flag=i;
printf(\greater than is %s %lf\\n\
} } }
int main() {
input();
subject_max(); subject_average(); subjct_gtaverage(); return 0; }
average
实验二顺序表的基本操作
实验预备知识:
1.熟练运用数组进行程序设计,掌握数组名和指针作为函数参数。 2.掌握结构体和结构体数组的访问与使用。 3.熟练实现顺序表类型和变量(如下所示)定于、熟悉顺序表的访问原理(顺序存储、随机访问)。
第3页 /共58页
一、实验目的
1.掌握顺序表的建立、数据元素的插入和删除、掌握数据元素的访问。 2.能够熟练的使用函数来实现顺序表的各种操作。
二、实验环境
⒈ 硬件:每个学生需配备计算机一台。 ⒉ 软件:Windows操作系统+Turbo C;
三、实验要求
1.定义一顺序表类型,并定义顺序表。
2.将教材中顺序表的建立、初始化、插入、删除等函数实现。
3.顺序表能够存储10名学生的基本信息(包括姓名、学号和成绩)。 4.由主函数按照用户要求对各个顺序表操作访问。
5.每次操作之前要有明确的说明,操作后要输出操作结果。 6.分析顺序表的插入、删除、查找的时间和空间复杂度。
四、实验内容
1.在自己的U盘的“姓名+学号”文件夹中创建“实验2”文件夹,本次实验的所有程序和数据都要求存储到本文件夹中。
2.完成顺序表操作的如下函数:建立,初始化,增加,插入,删除。
#include \#include \#include \
#define LIST_INIT_SIZE 1 #define LISTINCREMENT 1
struct stu
{char name[6]; char num[3]; int cj;};
第4页 /共58页
struct sqlist
{struct stu *elem; int length; int listsize;};
void main()
{struct sqlist* initlist_hc(); void cshlist_hc(struct sqlist *l); void listinsert_hc(struct sqlist *l); void listdelete_hc(struct sqlist *l);
void listhb_hc(struct sqlist *l1,struct sqlist *l2,struct sqlist *l3); struct sqlist *l1,*l2,*l3; char f;int i, k=0;
printf(\请选择对顺序表的操作,操作菜单如下:\\n\for(i=0;i<80;i++)printf(\printf(\建立顺序表(C)\\n\printf(\初始化顺序表(N)\\n\printf(\顺序表中插入元素(I)\\n\printf(\顺序表中删除元素(D)\\n\printf(\合并顺序表(H)\\n\printf(\退出系统(E)\\n\for(i=0;i<80;i++)printf(\do
{printf(\输入大写字母按Enter确定:\flushall(); f=getchar(); if(f=='C')
{if(k==0)l1=initlist_hc(); else {l2=initlist_hc();} k++;}
else if(f=='N')
{if(k==1)cshlist_hc(l1);else cshlist_hc(l2);} else if(f=='I')
{if(k==1)listinsert_hc(l1);else listinsert_hc(l2);} else if(f=='D')
{if(k==1)listdelete_hc(l1);else listdelete_hc(l2);} else if(f=='H') {l3=initlist_hc(); listhb_hc(l1,l2,l3);} }while(f!='E'); }
struct sqlist *initlist_hc() {struct sqlist *l;
l=(struct sqlist*)malloc(sizeof(struct sqlist));
第5页 /共58页
if(!l)printf(\出错!\\n\return(l);}
void cshlist_hc(struct sqlist *l) {struct stu *newbase;
void printlist_hc(struct sqlist *l); char x[6],y[3];int z;
l->elem=(struct stu*)malloc(LIST_INIT_SIZE*sizeof(struct stu)); if(!l->elem)printf(\出错!\\n\l->length=0;
l->listsize=LIST_INIT_SIZE; printf(\请输入信息以-1结束:\\n\scanf(\while(z!=-1)
{if(l->length==l->listsize)
{newbase=(struct stu*)realloc(l->elem,(l->listsize+LISTINCREMENT)*sizeof(struct stu)); if(!newbase)printf(\出错!\\n\
l->elem=newbase;l->listsize+=LISTINCREMENT;} strcpy(l->elem[l->length].name,x); strcpy(l->elem[l->length].num,y); l->elem[l->length].cj=z; scanf(\if(z!=-1)l->length++;} printlist_hc(l);}
void listinsert_hc(struct sqlist *l) {int i,j;
struct stu *newbase;
void printlist_hc(struct sqlist *l); if(l->length==l->listsize)
{newbase=(struct stu*)realloc(l->elem,(l->listsize+LISTINCREMENT)*sizeof(struct stu)); if(!newbase)printf(\出错!\\n\
l->elem=newbase;l->listsize+=LISTINCREMENT;} printf(\输入要插入信息的位置:\scanf(\for(i=l->length;i>=j;i--)
{strcpy(l->elem[i+1].name,l->elem[i].name); strcpy(l->elem[i+1].num,l->elem[i].num); l->elem[i+1].cj=l->elem[i].cj;} printf(\输入插入信息:\\n\
scanf(\l->length++; printlist_hc(l);}
第6页 /共58页
void listdelete_hc(struct sqlist *l) {void printlist_hc(struct sqlist *l); int i,j;
printf(\输入删除信息的位置:\scanf(\
printf(\删除的信息为:%s,%s,%d\\n\for(i=j+1;i<=l->length;i++)
{strcpy(l->elem[i-1].name,l->elem[i].name); strcpy(l->elem[i-1].num,l->elem[i].num); l->elem[i-1].cj=l->elem[i].cj;} l->length--; printlist_hc(l);}
void listhb_hc(struct sqlist *l1,struct sqlist *l2,struct sqlist *l3) {void printlist_hc(struct sqlist *l); struct stu *p1,*p2,*p3;
struct stu *p1_last,*p2_last; p1=l1->elem;p2=l2->elem;
l3->length=l1->length+l2->length+1; l3->listsize=l1->length+l2->length+2;
p3=l3->elem=(struct stu*)malloc(l3->listsize*sizeof(struct stu)); if(!l3->elem)printf(\出错!\\n\p1_last=l1->elem+l1->length; p2_last=l2->elem+l2->length;
while(p1<=p1_last&&p2<=p2_last) {if(p1->cj>p2->cj)
{strcpy(p3->name,p1->name); strcpy(p3->num,p1->num); p3->cj=p1->cj;p1++;p3++;} else
{strcpy(p3->name,p2->name); strcpy(p3->num,p2->num); p3->cj=p2->cj;p2++;p3++;} }
while(p1<=p1_last)
{strcpy(p3->name,p1->name); strcpy(p3->num,p1->num); p3->cj=p1->cj;p1++;p3++;} while(p2<=p2_last)
{strcpy(p3->name,p2->name); strcpy(p3->num,p2->num); p3->cj=p2->cj;p2++;p3++;} printlist_hc(l3);}
第7页 /共58页
…… 此处隐藏:2290字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




