




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上班级: 姓名: 学号: 实验一 线性表的基本操作一、 实验目的1、掌握线性表的定义;2、掌握线性表的基本操作,如建立、查找、插入和删除等。二、 实验内容定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表(二选一),使其具有如下功能:(1) 根据指定学生个数,逐个输入学生信息;(2) 逐个显示学生表中所有学生的相关信息;(3) 根据姓名进行查找,返回此学生的学号和成绩;(4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录;(7) 统计表中学生个数。三、 实验环境Visual
2、 C+四、 程序分析与实验结果#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;/ 定义函数返回值类型 typedef structchar num10; / 学号char name20; / 姓名double grade; / 成绩 student;typedef student ElemType;typedef struct
3、 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&&a
4、mp;j<i)p=p->next;+j;if(!p|j>i)return ERROR;e=p->data;return OK;Status Search(LNode L,char str,LinkList &p) / 根据名字查找 p=L.next; while(p)if(strcmp(p->,str)=0)return OK;p=p->next;return ERROR;Status ListInsert(LinkList L,int i,ElemType e) / 在 i个位置插入某个学生的信息 LinkList p,s;p=L
5、;int j=0;while(p&&j<i-1)p=p->next;+j;if(!p|j>i-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)&&(j<i-1)p=p->next;+j;if(!(p->nex
6、t)|(j>i-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(&
7、quot;输入完成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. 输入姓名
8、,查找该学生");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:
9、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;i<=x;i+)GetElem(&L,i,b);
10、Output(&b);break;case 4:char s20;printf("请输入要查找的学生姓名:");scanf("%s",s);if(Search(L,s,p)Output(&(p->data);elseputs("对不起,查无此人");puts("");break;case 5:printf("请输入要查询的位置:");int id1;scanf("%d",&id1);GetElem(&L,id1,c);Output(&am
11、p;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 i
12、d3;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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校科学室管理制度
- 学生寄宿楼管理制度
- 学营养改善管理制度
- 安全员培训管理制度
- 安全风险金管理制度
- 宏远库消防管理制度
- 宝钢液压油管理制度
- 实验操作间管理制度
- 审计部岗位管理制度
- 宣传网格化管理制度
- 七年级下册地理知识点总结(考点清单)(背记版)七年级地理下学期期末复习(人教2024版)
- 2025年四川富润招聘笔试冲刺题(带答案解析)
- 2025年全国安全生产月活动安全知识竞赛题库(附答案)
- 2025医疗健康行业AI应用白皮书-阿里云
- 中国当代文学专题-003-国开机考复习资料
- 初三班级学生中考加油家长会课件
- 部编版道德与法治五年级下册期末综合测试卷含答案(共6套)
- Q∕SY 08124.3-2018 石油企业现场安全检查规范 第3部分:修井作业
- 水利水电工程防渗墙工程质量检测
- 机加产品外观质量检验标准
- 生产成本控制与管理ppt课件
评论
0/150
提交评论