数据结构实验报告二单链表的应用
更新时间:2023-11-04 19:43:01 阅读量: 综合文库 文档下载
《数据结构》实验报告
实验二、单链表的应用
专 业 班 级 学 号 学生姓名 指导老师
河南科技大学管理学院
年 月 日
一、实验目的
熟练掌握线性表的链式存储结构的建立方法以及基本操作算法,并根据实际问题的要求,灵活运用。
二、实验内容
本次实验要求以班级学生信息作为管理对象,根据实验一建立班级学生信息线性表的链式存储结构,并练习使用单链表的基本操作算法,实现对班级学生信息的管理,包括学生信息的插入、学生信息的删除、学生信息的查询和学生信息线性表的输出。
三、完成情况
#include
//#define MAXSIZE 100
typedef struct{
char num[8];/*学号*/ char name[9];/*姓名*/ char gender[3];/*性别*/ int score;/*成绩*/ }DataType;
typedef struct {
DataType data; struct LNode *next; }LNode,*LinkList;
int menu_select() {
int sn;
printf(\ 学生信息管理系统\\n\
printf(\ printf(\ 1.学生信息线性表的建立\\n\ printf(\ 2.插 入 学 生 信 息\\n\ printf(\ 3.查 询 学 生 信 息\\n\ printf(\ 4.删 除 学 生 信 息\\n\ printf(\ 5.输 出 所有学生信息\\n\ printf(\ 0.退 出 管 理 系 统\\n\
printf(\ printf(\请选择0-5:\\n\ for(;;)
- 1 -
{ scanf(\ if (sn<0 || sn>5) printf(\输入错误,重选0-5\\n\ else break; }
return sn; }
void createList(LinkList L) {
int n,i=0; LNode *p;
printf(\有几位学生?请输入:\\n\ fflush(stdin); scanf(\
printf(\以下请输入这%d位学生的信息:\\n\ for(i=0;i printf(\第%d位学生:\ printf(\学号(8) 姓名(8) 性别 成绩\\n\ fflush(stdin); p=(LinkList)malloc(sizeof(LNode)); scanf(\ p->next=L->next;L->next=p; } } void printList(LinkList L) { int i=0; LNode *p; p=L->next; printf(\学号(8) 姓名(8) 性别 成绩\\n\ printf(\ while(p) { printf(\第%d位学生:\ printf(\ printf(\ p=p->next;i++; } - 2 - } int insert(LinkList L,LNode *student,int i) { int j; LNode *p; p=L; j=0; while(p && j if(!p||j>i-1) printf(\ else{ student->next=p->next; p->next=student; } return 1; } int findList(LinkList L) { char num[8]; char name[9]; int xz; LNode *p;p=L; printf(\ printf(\、按学号查询\\n\ printf(\、按姓名查询\\n\ printf(\ printf(\ 请选择: \ fflush(stdin); scanf(\ if (xz==1) { printf(\请输入要查找学生的学号:\ scanf(\ p=L->next; while(p) { if(strcmp(p->data.num,num)!=0) p=p->next; else break;} return p; } else if (xz==2) - 3 - { printf(\请输入要查找学生的姓名:\ scanf(\ p=L->next; while(p) { if(strcmp(p->data.num,num)!=0) p=p->next; else break;} return p; } } void delNode(LinkList L) { int i;LNode *p,*q;q=L; printf(\请先查找您要删除的学生信息:\\n\ p=findList(L); if(!p) { printf(\没有查到要删除的学生信息\ return; } while(q->next!=p) { q=q->next; } q->next=p->next; printf(\该学生信息已被删除!\\n\} void main() { LinkList L; LNode *student,*p; int i; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; while(1){ switch(menu_select()) { case 1: printf(\ - 4 - printf(\ 学生信息线性表的建立 \\n\ printf(\ createList(L); break; case 2: printf(\ printf(\添加学生信息\\n\ printf(\请输入要添加的学生信息:\\n\ printf(\学号(8) 姓名(8) 性别 成绩\\n\ printf(\ student=(LinkList)malloc(sizeof(LNode)); fflush(stdin); scanf(\t->data.score); printf(\请输入要插入的位置:\\n\ fflush(stdin); scanf(\ insert(L,student,i); break; case 3: printf(\ printf(\查询学生信息\\n\ printf(\ p=findList(L); if(p) { printf(\您要查的学生为:\\n学号(8) 姓名(8) 性别 成绩\\n\ printf(\ printf(\ printf(\ } else printf(\没有您要查询的学生信息!\ break; case 4: printf(\ printf(\删除学生信息\\n\ printf(\ delNode(L); break; case 5: printf(\ - 5 - printf(\输出所有学生信息\\n\ printf(\ printList(L); break; case 0: printf(\再见!\\n\ getch(); return; } } } - 6 - 实验成绩 评价项目 独立完成完整的实验内容,结果完全正确,报告内容完整,排版整洁美观,能真实体现实际操作过程及遇到的问题。 完成实验,实验内容较为完整,结果正确,报告内容较为完整,排版较为整洁美观,能体现实际操作过程及遇到的问题。 基本完成实验,结果正确,报告内容欠缺,排版较为整洁美观,能体现实际操作过程及遇到的问题。 不能独立完成完整的实验内容,结果不真实,报告内容欠缺,排版欠整洁美观,不能体现实际操作过程及遇到的问题。 评分等级 A B C D - 7 -
正在阅读:
数据结构实验报告二单链表的应用11-04
数控机床课程设计-X-Y数控工作台设计(完整图纸)05-29
Effects of Temperature and Atmosphere on Pellets Reduction Swelling Index05-30
中小学资料山东省邹平县七年级语文下册 第一单元 2 说和做 - 记03-22
串词写法09-20
excel中实现自动生成金额大写公式08-28
村后备干部培养实施意见05-28
嘉兴语文五年级下册期末检测卷参考答案及评分建议(201706)04-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单链
- 数据结构
- 实验
- 报告
- 应用