单链表的应用.doc

上传人:大张伟 文档编号:8974985 上传时间:2021-01-28 格式:DOC 页数:9 大小:36KB
返回 下载 相关 举报
单链表的应用.doc_第1页
第1页 / 共9页
单链表的应用.doc_第2页
第2页 / 共9页
单链表的应用.doc_第3页
第3页 / 共9页
单链表的应用.doc_第4页
第4页 / 共9页
单链表的应用.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《单链表的应用.doc》由会员分享,可在线阅读,更多相关《单链表的应用.doc(9页珍藏版)》请在三一文库上搜索。

1、数据结构实验报告实验二、单链表的应用 专 业 * 班 级 * 学 号 * 学生姓名 * 指导老师 * *学院 *年*月*日一、实验目的 熟练掌握线性表的链式存储结构的建立方法以及基本操作算法,并根据实际问题的要求,灵活运用。 二、实验内容本次实验要求以班级学生信息作为管理对象,根据实验一建立班级学生信息线性表的链式存储结构,并练习使用单链表的基本操作算法,实现对班级学生信息的管理,包括学生信息的插入、学生信息的删除、学生信息的查询和学生信息线性表的输出。1、学生信息管理主控程序的设计 学生信息管理系统 1、学生信息线性表的建立 2、插入学生信息 3、查询学生信息 4、删除学生信息 5、输出所有

2、学生信息 0、退出管理系统请选择05:2、学生信息管理功能函数的设计(1) 设计函数createList(),建立学生信息单链表;(2) 设计函数printList(),输出学生信息单链表中的各项内容;(3) 设计函数insert(), 在学生信息单链表中插入新的学生信息结点;(4) 设计函数findList(), 在学生信息单链表中实现按学号和姓名两种方式查询学生信息;(5) 设计函数delNode(),在学生信息单链表中删除指定学生的信息; 三、完成情况 #include #include #define MAXSIZE 100typedef struct char num8;/*学号*/

3、 char name9;/*姓名*/ char gender3;/*性别*/ int score;/*成绩*/DataType;typedef struct DataType stu; struct LinkList *next;ListNode,*LinkList;int menu_select()int sn;printf(n 学生信息管理系统n);printf(=n);printf( 1.学生信息线性表的建立n);printf( 2.插 入 学 生 信 息n);printf( 3.查 询 学 生 信 息n);printf( 4.删 除 学 生 信 息n);printf( 5.输 出 所有

4、学生信息n);printf( 0.退 出 管 理 系 统n);printf(=n);printf(请选择0-5:n);for(;)scanf(%d,&sn);if (sn5) printf(nt输入错误,重选0-5n);else break;return sn;LinkList createList()int n,i;LinkList p,head;printf(有几位学生?请输入:n);fflush(stdin);scanf(%d,&n);printf(以下请输入这%d位学生的信息:n,n);head=(LinkList)malloc(sizeof(ListNode);head-next=N

5、ULL;for(i=n;i0;i-)p=(LinkList) malloc (sizeof(ListNode);printf(n学号(8) 姓名(8) 性别 成绩n);scanf(%s%s%s%d,&p-stu.num,&p-stu.name,&p-stu.gender,&p-stu.score);p-next=head-next; head-next=p; return head;void printList(LinkList L)LinkList p;printf(n学号(8) 姓名(8) 性别 成绩n);printf(-n);p=L;p=p-next;while(p!=NULL)prin

6、tf(%s,%s,%s,%dn,p-stu.num,p-stu.name,p-stu.gender,p-stu.score);p=p-next;printf(-n);void insert(LinkList L,DataType *student,int i)int j;LinkList s,p;p=L;j=0;while(L& jnext;+j; /寻找第i -1个结点if(!L| ji-1) printf(ERROR);s=(LinkList*)malloc(sizeof(LinkList);strcpy(s-stu.num,student-num);strcpy(s-stu.name,s

7、tudent-name);strcpy(s-stu.gender,student-gender);s-stu.score=student-score;s-next=p-next;p-next=s;int findList(LinkList L)char num8;char name9;int i=0,xz;LinkList p;p=L;printf(=n);printf(1、按学号查询n);printf(2、按姓名查询n);printf(=n);printf( 请选择: );fflush(stdin);scanf(%d,&xz);if (xz=1) printf(请输入要查找学生的学号:);

8、scanf(%s,num); p=p-next; while(p!=NULL) if(strcmp(p-stu.num,num)=0) printf(您要查的学生为:n学号(8) 姓名(8) 性别 成绩n); printf(-n); printf(%s,%s,%s,%dn,p-stu.num,p-stu.name,p-stu.gender,p-stu.score); printf(-n); break; else if (xz=2) printf(请输入要查找学生的姓名:); scanf(%s,name); p=p-next; while(p!=NULL) if(strcmp(p-stu.na

9、me,name)=0) printf(您要查的学生为:n学号(8) 姓名(8) 性别 成绩n); printf(-n); printf(%s,%s,%s,%dn,p-stu.num,p-stu.name,p-stu.gender,p-stu.score); printf(-n); break; void delNode(LinkList L)int j;char i;LinkList q,p;DataType e;j=0;p=L;printf(请先查找您要删除的学生学号:);scanf(%s,&i);p=p-next;while(strcmp(p-stu.num,i)!=0) p=p-next

10、; +j;if(!(p-next) | ji-1) printf(ERROR);q=p-next; p-next=q-next;e=q-stu; free(q);void main() DataType *student; int i; LinkList head; while(1) switch(menu_select() case 1:printf(*n);printf( 学生信息线性表的建立 n);printf(*n);head=createList();break; case 2:printf(*n);printf(添加学生信息n);printf(请输入要添加的学生信息:n);prin

11、tf(n学号(8) 姓名(8) 性别 成绩n);printf(*n);student=(DataType *)malloc(sizeof(DataType);fflush(stdin);scanf(%s%s%s%d,student-num,student-name,student-gender,&student-score);printf(请输入要插入的位置:n);fflush(stdin);scanf(%d,&i);insert(head,student,i); break; case 3:printf(*n);printf(查询学生信息n);printf(*n);findList(head

12、);break; case 4:printf(*n);printf(删除学生信息n);printf(*n);delNode(head); break; case 5:printf(*n);printf(输出所有学生信息n);printf(*n);printList(head);break; case 0:printf(再见!n);getchar();return; 四、实验结果 1. 建立学生链表:链表信息:学号姓名性别成绩1001LiSiM901002LiFangW951003WangWuM892. 查询学生信息:按学号查询(1)输入要查找的学生学号:1003屏幕显示:1003,WangWu

13、,M,893. 插入学生信息:1004 LiChen W 92插入位置:14. 输出所有学生信息:1004,LiChen,W,921003,WangWu,M,891002,LiFang,W,951001,LiSi,M,90五、问题与解决六、思考题七、实验总结 实验成绩评价项目评分等级独立完成完整的实验内容,结果完全正确,报告内容完整,排版整洁美观,能真实体现实际操作过程及遇到的问题。A完成实验,实验内容较为完整,结果正确,报告内容较为完整,排版较为整洁美观,能体现实际操作过程及遇到的问题。B基本完成实验,结果正确,报告内容欠缺,排版较为整洁美观,能体现实际操作过程及遇到的问题。C不能独立完成完整的实验内容,结果不真实,报告内容欠缺,排版欠整洁美观,不能体现实际操作过程及遇到的问题。D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1