




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
班级: 姓名: 学号: 实验一 线性表的基本操作一、 实验目的1、掌握线性表的定义;2、掌握线性表的基本操作,如建立、查找、插入和删除等。二、 实验内容定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表(二选一),使其具有如下功能:(1) 根据指定学生个数,逐个输入学生信息;(2) 逐个显示学生表中所有学生的相关信息;(3) 根据姓名进行查找,返回此学生的学号和成绩;(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录;(7) 统计表中学生个数。三、 实验环境Visual C+四、 程序分析与实验结果#include#include#include#include#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;/ 定义函数返回值类型 typedef structchar num10; / 学号char name20; / 姓名double grade; / 成绩 student;typedef student ElemType;typedef struct LNodeElemType data; / 数据域struct LNode *next; /指针域 LNode,*LinkList;Status InitList(LinkList &L) / 构造空链表 L L=(struct LNode*)malloc(sizeof(struct LNode);L-next=NULL;return OK;Status GetElem(LinkList L,int i,ElemType &e) / 访问链表,找到 i位置的数据域,返回给 e LinkList p;p=L-next;int j=1;while(p&jnext;+j;if(!p|ji)return ERROR;e=p-data;return OK;Status Search(LNode L,char str,LinkList &p) / 根据名字查找 p=L.next; while(p)if(strcmp(,str)=0)return OK;p=p-next;return ERROR;Status ListInsert(LinkList L,int i,ElemType e) / 在 i个位置插入某个学生的信息 LinkList p,s;p=L;int j=0;while(p&jnext;+j;if(!p|ji-1)return ERROR;s=(struct LNode*)malloc(sizeof(LNode);s-data=e;s-next=p-next;p-next=s;return OK;Status ListDelete(LinkList p,int i) / 删除 i位置的学生信息 int j=0;while(p-next)&(jnext;+j;if(!(p-next)|(ji-1)return ERROR;LinkList q;q=p-next;p-next=q-next; delete q;return OK;void Input(ElemType *e)printf(姓名:);scanf(%s,e-name);printf(学号:);scanf(%s,e-num);printf(成绩:);scanf(%lf,&e-grade);printf(输入完成nn);void Output(ElemType *e)printf(姓名:%-20sn学号:%-10sn成绩:%-10.2lfnn,e-name,e-num,e-grade);int main()LNode L;LinkList p;ElemType a,b,c,d;printf(n*nn);puts(1. 构造链表); puts(2. 录入学生信息);puts(3. 显示学生信息);puts(4. 输入姓名,查找该学生);puts(5. 显示某位置该学生信息); puts(6. 在指定位置插入学生信息);puts(7. 在指定位置删除学生信息);puts(8. 统计学生个数);puts(0. 退出);printf(n*nn);int x,choose=-1;while(choose!=0)puts(请选择:);scanf(%d,&choose);switch(choose)case 1:if(InitList(p)printf(成功建立链表nn);elseprintf(链表建立失败nn);break;case 2:printf(请输入要录入学生信息的人数:);scanf(%d,&x);for(int i=1;i=x;i+)printf(第%d个学生:n,i);Input(&a);ListInsert(&L,i,a);break;case 3:for(int i=1;idata);elseputs(对不起,查无此人);puts();break;case 5:printf(请输入要查询的位置:);int id1;scanf(%d,&id1);GetElem(&L,id1,c);Output(&c);break;case 6:printf (请输入要插入的位置:);int id2;scanf(%d,&id2);printf(请输入学生信息:n);Input(&d);if(ListInsert(&L,id2,d)x+;puts(插入成功);puts();elseputs(插入失败);puts();break;case 7:printf(请输入要删除的位置:);int id3;scanf(%d,&id3);if(ListDelete(&L,id3)x-;puts(删除成功);puts();elseputs(删除失败);puts();break;case 8:printf(已录入的学生个数为:%dnn,x);break;printf(nn谢谢您的使用,请按任意键退出nnn);system(pause); return 0;用户界面:(1) 根据指定学生个数,逐个输入学生信息:(2) 逐个显示学生表中所有学生的相关信息:(3) 根据姓名进行查找,返回此学生的学号和成绩:(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩):(5) 给定一个学生信息,插入到表中指定的位置:(6) 删除指定位置的学生记录:(7) 统计表中学生个数:五、 实验总结数据结构是一门专业技术基础课。它要求学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构,存储结构及相应的算法,并初步掌握算法的时间分析和空间分析技术。不仅要考虑具体实现哪些功能,同时还要考虑如何布局,这次的实验题目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医疗行业大数据隐私保护合规政策与实施指南报告001
- 2025年云计算服务模式创新与行业应用解决方案竞争格局研究报告
- 2025年元宇宙社交平台营销策略与品牌合作报告
- 2025年医院电子病历系统优化在医院信息化建设中的数据生命周期管理报告001
- 2025年医药行业研发创新与技术转移报告
- 2025年医药企业研发外包(CRO)在临床试验安全性评价中的应用报告
- 生鲜新零售行业冷链物流冷链温控设备选型及优化报告
- 2025年医药企业研发外包(CRO)模式下的新药研发项目管理工具比较与选择报告
- 绿色建筑认证体系在绿色酒店管理中的应用与创新报告
- 2025年医药流通企业供应链创新与成本控制模式研究报告
- 北师大版(2024)七年级上册生物期末复习全册考点背诵提纲
- 2025年湖南中考生物试题及答案
- Unit 2 Home Sweet Home 第1课时(Section A 1a-1d) 2025-2026学年人教版英语八年级下册
- 混凝土站销售管理制度
- 山东省威海市实验中学2025届七下英语期末达标检测试题含答案
- 第七中学高二下学期5月月考语文试题(含答案)
- 2025至2030中国旋转密码挂锁行业发展分析及前景趋势与投资报告
- 苏教版八年级下物理期末考试试题(含三套试卷)
- 2025年河北省中考麒麟卷地理(三)及答案
- 河南天一大联考2025年高二下学期期末学业质量监测英语试题
- 国际学校员工管理制度
评论
0/150
提交评论