欢迎来到天天文库
浏览记录
ID:46893226
大小:143.00 KB
页数:17页
时间:2019-11-29
《数据结构实验指导书实验2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验二链表的基本操作一、实验目的1.掌握单链表、双向链表的数据类型定义;2.掌握握单链表、双向链表、循环单链表基本操作的实现,如:创建、插入、删除、查找、合并、遍历等运算;3.掌握链表基本操作的应用。二、实验内容示例程序:简易学生信息管理系统(LinkList.cpp)本简易学生信息管理系统要求以单链表作为学生信息的载体,并实现学生信息的查询、添加、删除、统计、排序、保存等基本功能。本示例程序实现了简易学生信息管理中的杳询及人数统计、添加和保存等功能,要求学生对该系统进行完善,继续添加相关函数以提高其实用性。1.文件结构设计a)原始数据:保存在文件input2.txt
2、中。b)输出数据:保存在文件output2.txt中。2.数据结构设计〃单链表存储结构定义typedefstructStu{longintnum;//学号charname[20];//姓名charsex;//性别intage;//年龄intscore;//分数)ElemType;//定义数据元素为学生信息lypcdcfstructLNodcjEIcmTypcdata;〃数据域structLNode*ncxt;〃指针域}LNode,*LinkList;3.程序结构a)函数说明〃单链农基本操作的说明intMenu();//系统主菜单intQMenu();//査询菜单Lin
3、kListCreateList(FILE*in);〃建表(头插入法建立单链表)LinkListListinsert(LinkListL);〃添加(在单链表第i个结点前插入新元素)voidTaverList(LinkListL);//查询(遍历单链表)voidSaveList(LinkListL,FILE*out);〃保存(将单链表数据存入文件output2.txt)b)函数实现intMenu()//系统主菜单intn;printf(u岸);printff学牛信息管土甲系统******************H)#printf(ntl.M统文件初始化并导入数
4、据”);〃系统初始化是必须的printf(ut2.S询及人数统计(全部信息、男生信息、女生信息)“);printf("t3.添加学生信息”);printf(%4.删除学生信息”);printf(”t5.排序(升序、降序)H);prinlf(“lO.存盘&退出”);printf(u**********************劝访问**********************、[]“)・printf(uW);scanfC%(T;&n);return(n);}intQMenu()//查询菜单intn;p门ntf("t********
5、*****printf(utl.全部信息”);printf(ut2.男生信息”);printf(”t3.女生信息”);printf(ut4.退出t“);scanf("%d",&n);return(n);}LinkListCreateList(FILE*in){〃建表,头插入法(逆向)婕立单链表LinkListUp;inti5n;L=(LinkList)malloc(sizeof(LNode));//头结点L->next=NULL;fscanf(in,“%d”,&n);〃读取数据元素个数,即表长nL->data.num=n;//将表长存入头节点数据域i=0;w
6、hile(idata.num,p->data.name,&p->data.sex,&p->da(a.age,&p->data.score);p->next=L->next;L->next=p;i++;}returnL;}LinkListListinsert(LinkListL){//添加,在带头结点单链表第i个结点前插入新元索LinkLists,p=L;inti,j=0;printf("请输入插入的位置
7、i=");scanf("%d",&i);while(p!=NULL&&jvi-1){p=p->next;j++;}〃找第i-1个结点if(p==NULLIIj>i-l){printfC插入位置输入错误!");exit(-l);}s=(LinkList)malloc(sizeof(LNode));//创建新结点printfC*请输入插入的元素(学号姓名性别年龄成绩)x=“);scanf("%d%s%c%d%d",&s->data.num,s->data.name,&s->data.sex,&s->data.age,&s->data.score)
此文档下载收益归作者所有