c语言第12次实验内容(链表)邹显春

上传人:gb****c 文档编号:243022519 上传时间:2024-09-14 格式:PPT 页数:11 大小:148KB
返回 下载 相关 举报
c语言第12次实验内容(链表)邹显春_第1页
第1页 / 共11页
c语言第12次实验内容(链表)邹显春_第2页
第2页 / 共11页
c语言第12次实验内容(链表)邹显春_第3页
第3页 / 共11页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,该实验内容依据教材:,C语言程序设计实验教程邹显春、王建国主编高等教育出版社,E-Mail:,1,掌握C语言程序设计的诀窍,-重在上机实践!,目标:,熟练阅读、编写程序,2,实验12 链表,(P45),说明:参考程序代码放在备注中,仅供大家对照检查,希望同学们本着对自己负责的精神,先独立完成,再看参考答案,3,一、实验目的,掌握线性链表的建立、访问、插入和删除基本操作,4,二、实验内容(P45),2.设计性实验(1)或(2)任选一题。,温馨提示,5,三、实验内容示范,设计性实验,(1) 编写一个程序,采用表头插入或表尾插入的方法建立一个10个学生的链表。每个学生的信息包括:学号、姓名和多科成绩和总分。,温馨提示:,本题采用结构化模块处理可使程序更加清晰,首先定义一个结构体,用于保存学生的学号、姓名、各科成绩和总成绩;,再定义一个链表结构体,内部元素为学生结构体类型和指向下一个链表节点的指针,定义链表的头指针为全局变量,定义,3,个自定义函数,分别做插入记录、显示所有记录和删除所有记录的操作,主函数中依次调用自定义函数,6,温馨提示(续),:,在插入记录函数的操作中,先从头部循环移动当前指针至链表尾部(尾部的,next,指针应在上次操作中设为空)使用,malloc,函数开辟当前指针的,next,指向的空间,并通过,scanf,依次将学生信息传入节点中的学生结构体内(注意总分是自动计算),移动当前指针至,next,再将,next,指针设为空,在显示所有记录函数的操作中,循环从头部开始,依次将当前节点中学生结构体的各信息输出,再将当前指针移动至,next,,跳出循环的条件是,next,指针为空,在删除所有记录函数的操作中,循环从头部开始,先让头部变为当前指针的,next,,然后使用,free,函数清空当前指针空间,再让当前指针指向新的,head,,跳出循环条件是,next,为空,7,程序运行的结果:,参考代码见备注,8,(2) 分别编写一个函数,建立n个整数节点的单向链表list、统计list表中的节点数、输出list表中的数据、在表中指定位置之后插入一个整数节点、在表中指定位置之前删除一个整数节点。并编写一主函数调用上述函数测试其功能。,温馨提示:,节点数的统计:链表指针循环从节点头向后移动,直到,next,为空,循环过程中统计循环的次数,插入节点:注意插入的位置如果是头部的话,让插入的节点的,next,为头部,再让头部为插入节点;其他情况让插入节点的,next,为当前指针的,next,,再让当前指针的,next,为插入节点(链表注意还要处理第一次操作头部为空时的插入情况,以及插入位置不在链表范围内的出错提示),9,温馨提示(续):,节点数的删除:由于是删指定位置前面的节点,循环移动链表指针要停在当前位置的前一位(即指针指向的节点的,next,才是指定位置),删除时也要考虑如果是头部节点,则让头部变为当前指针的,next,,在释放当前节点空间(使用,free,函数),其他情况则让当前节点的,next,临时保存,同时将当前节点的,next,变为当前节点,next,的,next,,最后释放掉临时保存的节点(删除操作同样要处理指定位置不在链表范围内时的出错提示)。,除这几个操作外,程序还应有显示全部节点内容、删除链表所有节点的操作,用于在主函数中调用(开辟的空间在程序结束前必须全部释放掉),具体实现方式参考上一题,10,程序运行的结果:,参考代码见备注,11,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!