单链表的应用_第1页
单链表的应用_第2页
单链表的应用_第3页
单链表的应用_第4页
单链表的应用_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、typedef struct char num8;/*学号*/ 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.插 入 学

4、 生 信 息n");printf(" 3.查 询 学 生 信 息n");printf(" 4.删 除 学 生 信 息n");printf(" 5.输 出 所有学生信息n");printf(" 0.退 出 管 理 系 统n");printf("=n");printf("请选择0-5:n");for(;)scanf("%d",&sn);if (sn<0 | sn>5) printf("nt输入错误,重选0-5n"

5、;);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=NULL;for(i=n;i>0;i-)p=(LinkList) malloc (sizeof(ListNode);pri

6、ntf("n学号(8) 姓名(8) 性别 成绩n");scanf("%s%s%s%d",&p->stu.num,&p->,&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"

7、);p=L;p=p->next;while(p!=NULL)printf("%s,%s,%s,%dn",p->stu.num,p->,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&& j<i-1)p=p->next;+j; /寻找第i -1个结点if(!L|

8、j>i-1) printf("ERROR");s=(LinkList*)malloc(sizeof(LinkList);strcpy(s->stu.num,student->num);strcpy(s->,student->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;ch

9、ar 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("请输入要查找学生的学号:"); scanf("%s",num); p=p->next; while

10、(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->,p->stu.gender,p->stu.score); printf("-n"); break; else if (xz=2) printf("请输入要查找学生的姓名:"); scanf(&qu

11、ot;%s",name); p=p->next; while(p!=NULL) if(strcmp(p->,name)=0) printf("您要查的学生为:n学号(8) 姓名(8) 性别 成绩n"); printf("-n"); printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.score); printf("-n"); break; void delNode(LinkL

12、ist 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; +j;if(!(p->next) | j>i-1) printf("ERROR");q=p->next; p->next=q->next;e=q->stu; free(q);void main

13、() 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");printf("n学号(8) 姓名

14、(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);

15、 break; case 3:printf("*n");printf("查询学生信息n");printf("*n");findList(head);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,M,893. 插入学生信息:1004 LiChen W 92插入位置:14. 输出所有学生信息:1004,LiChen,W,921003,WangWu,M,891002,LiFang,W,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论