实验一--线性表基本操作的编程实现.doc

实验一--线性表基本操作的编程实现.doc

ID:59189020

大小:35.00 KB

页数:8页

时间:2020-10-30

实验一--线性表基本操作的编程实现.doc_第1页
实验一--线性表基本操作的编程实现.doc_第2页
实验一--线性表基本操作的编程实现.doc_第3页
实验一--线性表基本操作的编程实现.doc_第4页
实验一--线性表基本操作的编程实现.doc_第5页
资源描述:

《实验一--线性表基本操作的编程实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一线性表基本操作的编程实现【实验目的】线性表基本操作的编程实现要求:线性表基本操作的编程实现(2学时,验证型),掌握线性表的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、逆序、排序等操作,存储结构可以在顺序结构或链表结构中任选,可以完成部分主要功能,也可以用菜单进行管理完成大部分功能。还鼓励学生利用基本操作进行一些更实际的应用型程序设计。【实验性质】验证性实验(学时数:2H)【实验内容】把线性表的顺序存储和链表存储的数据插入、删除运算其中某项进行程序实现。建议实现键盘输入数据以实现程序的通用性。为了体现功能的正常性,至少要

2、编制遍历数据的函数。【注意事项】1.开发语言:使用C。2.可以自己增加其他功能。【思考问题】1.线性表的顺序存储和链表存储的差异?优缺点分析?2.那些操作引发了数据的移动?3.算法的时间效率是如何体现的?4.链表的指针是如何后移的?如何加强程序的健壮性?【参考代码】(以下内容,学生任意选择一个完成即可)(一)利用顺序表完成一个班级学生课程成绩的简单管理1、预定义以及顺序表结构类型的定义 (1)#include#include#defineListSize100//根据需要自己设定一个班级能够容纳的最大学生数(2)t

3、ypedefstructstu{intnum;//学生的学号charname[10];//学生的姓名floatphysics;//物理成绩floatmath;//数学成绩floatenglish;//英语成绩}STUDENT;//存放单个学生信息的结构体类型typedefstructList{STUDENTstu[ListSize];//存放学生的数组定义,静态分配空间intlength;//记录班级实际学生个数}LIST;//存放班级学生信息的顺序表类型2、建立班级的学生信息voidlistcreate(LIST*Li,intm)//m为该班级的实

4、际人数{inti;Li->length=0;for(i=1;;i++)//输入m个学生的所有信息{printf("请输入第%d位学生的信息:",i);printf("学号=");scanf("%d",&Li->stu[i].num);//输入第i个学生的学号printf("姓名=");scanf("%s",&Li->stu[i].name);//输入第i个学生的姓名printf("物理成绩=");scanf("%f",&Li->stu[i].physics);//输入第i个学生的物理成绩printf("数学成绩=");scanf("%f",&Li

5、->stu[i].math);//输入第i个学生的数学成绩printf("英语成绩=");scanf("%f",&Li->stu[i].english);//输入第i个学生的英语成绩;//学生人数加1}}3、插入一个学生信息intlistinsert(LIST*Li,inti)//将学生插入到班级Li的第i个位置。{intj;STUDENTe;if(Li->length==)//测试存储空间是否被占满{printf("无更多的存储空间!");return0;}if(i<1

6、

7、i>Li->length+1)//插入位置检验,如果错误就返回0退出程序

8、。return0;else{printf("请输入插入的学生信息:");printf("学号=");scanf("%d",&e.num);printf("姓名=");scanf("%s",e.name);printf("物理成绩=");scanf("%f",&e.physics);printf("数学成绩=");scanf("%f",&e.math);printf("英语成绩=");scanf("%f",&e.english);for(j=Li->length;;j--)//从i位置到最后的元素依次往后移动Li->stu[j+1]=;Li->st

9、u[i]=e;//学生e放入到i位置Li->length++;//学生实际人数加1return1;}}4、删除一个学生信息intlistdel(LIST*Li,inti)//删除第i个学生的信息{intj;if(i<1

10、

11、i>Li->length+1)//删除位置检验,如果错误就返回0退出程序。return0;else{if(ilength)for(;j<=Li->length;j++)//从删除位置后一个到最后的元素依次往前移动;Li->length--;return1;}}5、显示所有学生信息voidlistdisplay(LIST*L

12、i){inti;printf("班级学生信息如下:");printf("学号姓名物理成绩数学成绩英语成绩

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。