



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-作者xxxx-日期xxxx数据结构试验五【精品文档】附:源代码#include #include typedef struct nodeint data;struct node *next;LinkList;/创建一个链表,含有头结点LinkList *create(LinkList *head)LinkList *p,*q;int key;q=head;printf(请输入节点元素:);scanf(%d,&key);while(key0)p=(LinkList *)malloc(sizeof(LinkList);p-data=key;q-next = p;q=p;scanf(%d,&key
2、);q-next=NULL;return head;/逆置整个链表void change(LinkList *head)LinkList *first; /始终指向首节点LinkList *prerear;/指向初始链表的尾节点/使prerear指向初始链表的尾节点if(first=NULL) /当节点为空时,跳出函数return ;for(prerear=head;prerear-next;prerear=prerear-next);first=head-next;/使用头插法把链表逆置,采用先设置尾节点的方法/若只有一个节点则直接返回if(first=prerear)return ;els
3、e/否则将初始链表的首节点变成尾结点head-next=first-next;/把首节点拿出来prerear-next=first;/将首节点接在尾节点后first-next=NULL;/将当前尾节点的next域置为NULLfirst=head-next;/将first始终指向首节点/下面利用头插法原理将首节点一次取出头插在初始尾结点之后/直到初始尾结点变成首节点为止for(;first!=prerear;)/把首节点拿出来head-next=first-next;/将拿出来的节点指向初始尾节点后一个节点first-next=prerear-next;/将拿出来的节点放在初始尾节点后prere
4、ar-next=first;/将first指向当前首节点first=head-next;/输出链表元素void print(LinkList *head)printf(逆置后的链表为:);for(LinkList *p=head-next;p!=NULL;p=p-next)printf(%d ,p-data);printf(n);int main()LinkList L,*head;head=&L;create(head);change(head);print(head);return 0;五、调试分析这个程序在设计的时候,就犯了一个逻辑的错误,当时的思路是这样的:将首节点依次插在尾结点上。当
5、时的代码是:算法设计思路错误for(first=head-next;first!=prerear;first=first-next) head-next=first-next;/把首节点拿出来rear-next=first;/将首节点接在尾节点后rear=first;/将rear指向新的尾节点first=head-next;/将first指向新的首节点rear-next=NULL;直到测试的时候才发现无法进行逆置,发过头来分析代码,当时也没发现逻辑有问题,而且这个问题困惑了我很久,怎么都搞不懂为什么?!直到后来,我分析我同学的程序时,才恍然大悟,将首节点依次插在尾结点上,这样一个循环之后不是有回到原来的那个次序了吗?!于是,我把思路由原来的模拟尾插法该成了模拟头插法,即将首节点始终差在初始尾结点之后。六、使用说明程序名为 逆序.exe, 运行环境为DOS。程序执行后显示这时,在这里必须输入输入整数,且必须大于0的,如果输入0,则说明要结束输入。按回车程序将会逆序输出刚才输的数据。说明:在录入数据时,最后一个0是不被程序读入的。七、测试结果1、测试结果符合要求2、测试结果符合要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邮政快递设施建设工程
- 企业国防意识培训课件
- 金属结构厂房设计与施工一体化合同
- 个性化定制办公用品买卖合同
- 美国进口商定制出口销售合同范本
- 项目绩效目标修订方案
- 车辆抵押贷款还清后借用合同
- 金融科技创新财务代理与风险评估合同范本
- 建筑书架改造方案
- 污水行业面试题及答案
- JBT 106-2024 阀门的标志和涂装(正式版)
- 应急第一响应人理论考试试卷(含答案)
- 2024年广东省香港大学深圳医院财务部岗位招聘历年高频考题难、易错点模拟试题(共500题)附带答案详解
- JC∕T 60016-2022 建筑用免拆复合保温模板应用技术规程
- 三伏贴课件(最终版)
- 《办公室保健、颈椎、腰椎病防备讲座》
- 山东省青岛第二中学2022-2023学年高一年级下册期末考试数学试题
- 检验设备的管理课件
- 摔伤安全培训课件
- 体育之研究白话翻译
- 新版标准日本语初级上册课文(附中文对照)-日本初级课本
评论
0/150
提交评论