下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#includetypedef struct nodeint data;node *next;Linklist;Linklist * Lcreat() /创建链表Linklist *L,*p,*S,*pre;int a;L=(Linklist *)malloc(sizeof(Linklist);L-next=NULL;printf(请输入一整型序列,并以0结束!n);scanf(%d,&a);while(a!=0)S=(Linklist *)malloc(sizeof(Linklist);S-data=a;p=L-next;pre=L;while(p!=NULL) /查找增加结
2、点的插入位置if(adata)pre-next=S;S-next=p;break;elsepre=p;p=p-next;if(p=NULL) /增加结点的数值最大或链表中只有头结点时pre-next=S;S-next=NULL;scanf(%d,&a);return L;Linklist *Linsert(Linklist *L,int x) /插入数值为x的结点Linklist *p,*pre,*S;p=L-next;pre=L;S=(Linklist *)malloc(sizeof(Linklist);S-data=x;while(p!=NULL) /查找数值为x的结点的插入位置if(xd
3、ata)pre-next=S;S-next=p;break;elsepre=p;p=pre-next;if(p=NULL)pre-next=S;S-next=NULL;return L;void Lout(Linklist *L) /链表输出Linklist *p;p=L-next;printf(链表输出:);while(p!=NULL)printf(%dt,p-data);p=p-next;printf(n);void main()Linklist *L,*q;int a;L=Lcreat();printf(链表创建);Lout(L);printf(请输入要插入的数值:);scanf(%d,
4、&a);q=Linsert(L,a);printf(插入一个数值后);Lout(q);问题分析: 本程序要求实现在一个非递减有序链表中插入一个结点,并且插入后的链表仍非递减有序,为完成上述功能,需要解决的关键问题是:创建一个非递减有序链表和将待插结点插入非递减有序链表过程。概要设计:创建链表,每当准备曾加一个结点时,将该结点的数值与已建的非递减有序链表中结点的数值进行比较,将它插入准确位置,使链表非递减有序。将待查结点的数值与非递减有序链表中结点的数值进行比较,若比较到比一个结点的数值小,即将待插结点插到该结点前。详细设计: 创建非递减有序链表的关键操作是边增加结点边插入排序。 每当增加一个结
5、点时,将该结点的数值与已建的非递减有序链表中结点数值进行比较,若已建链表只有头结点,则直接将该结点插入头结点后面。若已建链表有多个结点,当该结点数值最大时,将该结点插入尾结点后面,否则插入比该结点数值大的第一个结点的前面。 插入值为x的结点的步骤同。调试分析及小结: 错误:在创建非递减链表将结点插入非递减链表的过程中,当找到待插入结点的准确位置时,将链表插入,然后继续从键盘读取数据,执行上述操作。 源代码: while(p!=NULL) if(adata)pre-next=S;S-next=p;elsepre=p;p=p-next;调试时出现死循环。错误分析及改正:上面程序中,若执行if语句,则即找到待插结点的插入位置。当执行完if后程序并没跳出此次查找插入位置循环(while(.),
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 患者教育:赋能三叉神经痛患者自我护理
- 工程造价软件应用660
- 光学数控磨工安全实操评优考核试卷含答案
- 通信传输设备装调工QC考核试卷含答案
- 泌尿系感染患者的随访管理
- 人才测评师复测考核试卷含答案
- 铝镁粉球磨工岗前基础效率考核试卷含答案
- 磁法勘探工岗后考核试卷含答案
- 工艺美术品设计师复试考核试卷含答案
- 露天矿轮斗挖掘机司机变更管理水平考核试卷含答案
- 中北大学《数据结构》2025-2026学年第一学期期末试卷(A卷)
- 【2026】年事业单位联考《职业能力倾向测验》A类试题+答案
- 北京市海淀区2026届高三高考二模语文试卷(含答案)
- 《大学生职业发展与就业指导新编(第2版)》高职全套教学课件
- (三模)济南市2026届高三5月针对性训练地理试卷(含答案及解析)
- 上海市闵行区2024-2025学年高三上学期学业质量调研(一模)地理试题(含答案)
- 肩先露难产护理查房
- 2026年4月自考13000英语(专升本)试题及答案
- 四川省泸州市龙马潭区2026年初中数学毕业班第一次适应性模考试卷【含答案】
- 2026中国武夷实业股份有限公司招聘笔试历年参考题库附带答案详解
- 2026年融资专员考核笔题库及完整答案详解(夺冠)
评论
0/150
提交评论