C++实验报告链表应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C实验报告链表应用

班级:******* 学号: ************ 姓名: ***** 链表应用——学生信息管理系统 一、实验内容 定义一个链表,其中的数组元素为结构体成员,结构体中的学生信息有学号、姓名、身高,还有用于存放下一结点的结构体指针。然后定义在其上操作的函数,有在首部插入结点、在尾部插入结点、在某一个结点前插入结点、删除指定的结点、删除全部结点、修改指定结点的数据部分、显示全部结点信息、按照结构体结点中某一个数据项对链表进行排序。从主函数开始执行,输入数据,选择执行操作的类型,进入到各个函数中执行相应的操作,执行完毕后,返回主函数,结束程序的运行。 二、功能模块简介 主函数: 程序开始运行后,由主函数定义头结点StuLst lst,将结点的next域置为NULL。然后,显示指示用户进行输入的信息,供用户进行阅读了解,然后进行输入操作。 对各个模块进行简介: 0.结束程序: 在主界面输入0,退出正在运行的程序。 1.显示所有节点信息: 在主界面输入1,调用函数ShowLst(StuLst* lst)进行显示结点信息操作。如果链表不为空,则显示所有结点的信息。先设置输出信息格式,输出表头信息,定义指针*p=lst-next;用while循环,每次使p=p-next;如果p不为空则输出显示该节点的数据信息,然后依次显示每个节点的数据信息。 2.插入节点到头部: 在主界面输入2,调用函数InsertToFirst(StuLst* lst)插入结点到链表的头部。定义结构体指针并为它分配一个地址空间Stu* pSt=new Stu;用来接收用户输入的信息,屏幕上显示出提示信息,请用户输入信息,如果输入的学号信息不为0,则在执行完这一次输入后,继续执行下一次输入。输入完毕后,将该结构体指针插入到链表的头部去:pSt-next=lst-next;lst-next=pSt。 3.插入节点到尾部: 在主界面输入3,调用函数InsertToLast(StuLst* lst)插入结点到链表的尾部。定义结构体指针并为它分配一个地址空间Stu* pSt=new Stu;用来接收用户输入的信息,屏幕上显示出提示信息,请用户输入信息。输入完毕后,调用函数GetTail(lst)返回链表的尾部指针,将该结构体指针插入到链表的尾部去:GetTail(lst)-next=pSt;pSt-next=NULL。 4.插入节点到某个节点之前: 在主界面输入4,调用函数InsertBefore(StuLst* lst)插入结点到某个指定结点之前。定义整型变量用于接收用户输入的要插入的位置int nMark;定义结构体指针并为它分配一个地址空间Stu* pSt=new Stu;用来接收用户输入的信息,屏幕上显示出提示信息,请用户输入信息。输入完毕后,定义结构体指针指向头结点:Stu *p=lst;用while循环遍历整个链表,每次使p=p-next;如果p-next不为空,继续下一次循环。如果找到第nMark个结点,将该结构体变量插入到该结点前面去pSt-next=p-next;p-next=pSt;退出循环。 5.修改某个节点的数据部分: 在主界面输入5,调用函数Modify(StuLst* lst)修改某个指定的结点的数据部分。定义学号字符数组用于接收用于输入的要修改的结点的学号信息:char id[ID_LEN];定义姓名字符数组,用于接收用户输入的新的姓名:char name[NAME_LEN];定义整型变量,用于接收用户输入的新的身高:int nHeight;在用户输入信息完毕后,定义结构体指针指向头结点的下一个结点:Stu *p=lst-next;用while循环遍历整个链表,如果p不为空,每次使p=p-next;如果找到学号与输入的学号相同的结点,用输入的新的数据替换该结点原有的信息,如果输入的姓名不为空,则将执行替换,否则不执行,替换完成后,退出循环。 6.删除某个节点: 在主界面输入6,调用函数DeleteById(StuLst* lst)删除指定结点。定义学号字符数组,用于接收用户输入的要删除的结点的学号信息:char id[ID_LEN]。在用户输入信息完毕后,定义结构体指针指向头结点:Stu *p=lst;使用while循环遍历整个链表,如果p-next不为空,使p=p-next;如果找出学号信息与所输入的学号信息相符的结点,将其删除,并释放它所占用的存储空间:Stu* q=p-next;p-next=q-next;delete q;执行删除完毕后,推出循环。 7.删除全部节点: 在主界面输入7,调用函数DeleteAll(StuLst* lst)删除全部结点。定义结构体指针指向头结点:Stu *p=lst;使用whi

您可能关注的文档

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档