单链表的查找、插入与删除

上传人:鲁** 文档编号:417776243 上传时间:2023-05-03 格式:DOCX 页数:10 大小:30.79KB
返回 下载 相关 举报
单链表的查找、插入与删除_第1页
第1页 / 共10页
单链表的查找、插入与删除_第2页
第2页 / 共10页
单链表的查找、插入与删除_第3页
第3页 / 共10页
单链表的查找、插入与删除_第4页
第4页 / 共10页
单链表的查找、插入与删除_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单链表的查找、插入与删除》由会员分享,可在线阅读,更多相关《单链表的查找、插入与删除(10页珍藏版)》请在金锄头文库上搜索。

1、数据结构实验报告题目:单链表的查找、插入与删除班级:电子0802学号:姓名:日期: 2011.03.08程序名:cqql.c一、上机实验的问题和要求:单链表的查找、插入与删除。设计算法,实现线性结构上的单链表的产生以及元素的查 找、插入与删除。具体实现要求:1. 从键盘输入20个整数,产生不带表头的单链表,并输入结点值。2. 从键盘输入1个整数,在单链表中查找该结点的位置。若找到,则显示“找到了”;否 贝9,则显示“找不到”。3. 从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插 入在对应位置上,输出单链表所有结点值,观察输出结果。4. 从键盘输入1个整数,表示欲删

2、除结点的位置,输出单链表所有结点值,观察输出结果。5. 将单链表中值重复的结点删除,使所得的结果表中个结点值均不相同,输出单链表所有 结点值,观察输出结果。6. 删除其中所有数据值为偶数的结点,输出单链表所有结点值,观察输出结果。7. 把单链表变成带表头结点的循环链表,输出循环单链表所有结点值,观察输出结果。8. ()将单链表分解成两个单链表A和B,使A链表中含有原链表中序号为奇数的元 素,而B链表中含有原链表中序号为偶数的元素,且保持原来的相对顺序,分别输出 单链表A和单链表B的所有结点值,观察输出结果。1、基本操作函数link * get(link *l, int i);link * in

3、s (link *l, int a,int i) link * find(link *l, int a); link * del(link *l, int i);link * delrepeat( link *l);link * deleven(link *l);link * rotate(link *l);void divide(link *l);二、程序设计的基本思想,原理和算法描述:创建链表/在链表内插入值/在链表内查找值/在链表内删除值/在链表内删除重复值删除链表内偶数值/形成循环链表/分解成两个链表 coutendl;2、基本操作cout”请选择您要的操作:cout” 1、插入”;c

4、out 2、查找”;cout” 3、删除”;cout 4、删除重复结点”; cout 5、删除偶数结点”; cout 6、构建循环链表”; cout” 7、分解为两个链表”; cout” 0、退出”;三、源程序及注释:#include using namespace std;typedef struct nodeint data;struct node *next;link;void print1(link *l);link * get(link *l, int i)link *p;int j=0;p=l;while(jnext!=NULL) p=p-next;j+;if(j=i)return

5、 p;elsereturn NULL;link * ins (link *l, int a,int i)link *p,*s;p=get(l,i-1);if(p=NULL)cout输入有误data=a;s-next=p-next;p-next=s;return l;link * find(link *l, int a)link *p;int i=0;int j=0;p=l;while(p!=NULL)i+;if(p-data!=a)p=p-next;elsecout您查找的数据在第i-1next;if(j!=1)cout您查找的数据不在线性表中.”vvendl;return l;link *

6、del(link *l, int i)link *p,*s;p=get(l,i-1);if(p=NULL)cout输入有误next;p-next=s-next;free(s);return l;link * delrepeat( link *l)/删除相同元素并释放内存link *s,*r,*t;if (l- next = NULL )return l;s =l- next;while(s-next)t =s; r =s- next;while(t- next)if (s- data =r- data )t- next =r- next;free(r);r =t- next;elset=t-

7、next;r=t- next;s=s- next;if(!s )return l;return l;link * deleven(link *l)link *q=l;link *p=l-next;while(p)if(p-data%2=0)link *r=p;q-next=p-next;p=p-next;free(r);elsep=p-next;q=q-next;return l;link * rotate(link *l)link * p=l;while(p-next)p=p-next;p-next=l;link * t=l-next;while(t!=l)t=t-next;cout”已经变

8、为循环链表,其他操作将受影响,程序结束! next=NULL;link *Lb=b;int i=1;link * La=l;link * p=l-next;while(p)if(i+%2=0)La-next=p-next;p-next=NULL;Lb-next=p;Lb=Lb-next;p=La-next;elsep=p-next;La=La-next;cout链表 a;print 1(a);cout链表 b;print 1(b);void print 1 (link *1)(int i,k;int a;link *p,*q;cout当前线性表为:endl;p=l;p=p-next;if(l!

9、=NULL)do(coutp-data p=p-next; while(p! =NULL);coutendl;link * print(link *1)(int i,k;int a;link *p,*q;cout当前线性表为:endl;p=l;p=p-next;if(l!=NULL)do(coutp-data p=p-next; while(p! =NULL);coutendl;cout请选择您要的操作:cout 1、插入”;coutvv 2、查找”;cout 3、删除”;cout 4删除重复结点”;coutvv 5、删除偶数结点”;cout 6、构建循环链表”;coutvv” 7、分解为两个

10、链表”;cout 0、退出”;coutendl;cink;if(k=l)(cout请输入您要插入的数据值:”; cina;coutvv请输入您要插入的位置:;cini;p=ins(l,a,i);q=print(l);else if(k=2)(cout请输入您要查找的数据值:;cina;p=find(l,a);q=print(l);)else if(k=3)(cout请输入您要删除的数据的位置:cini;p=del(l,i);q=print(l);else if(k=4)(cout删除重复结点后的;p=delrepeat(l);q=print(l);else if(k=5)cout删除偶数结点后

11、的; p=deleven(l);q=print(l);else if(k=6)p=rotate(l);q=print(l);else if(k=7)divide(l);else if(k=0);elsecout”输入错误!”endl; return l;int main()cout请输入20个整数:next=NULL;r=l;for(i=0;ichi;p=(link *)malloc(sizeof(link);p-data=chi;p-next=NULL;r-next=p;r=r-next;q=print(l);return 0;四、运行输出结果: j F:downloadmsdiadatas

12、tructllVClebugl.exe情输入如个整数:12 3 32 82 9 2 3 89 20 39 39 2 39 59 10 2B 当前线哇表为;12 3 32 82 ? 2 3 69 20 29 39 2 39 59 10 2B3、删除 出蒲送择逐要S操生:彩半、直 建循环锤表?、:从绑对个覆金虹324、9 10 179 10 17删除重复结点卜删除-隅数结点M 命 A人:N操r 括括为8mp 要要表说芸表 嚎?穿槌 、人线3捧环 忧循 、1耆|12|-建1的的32:2 值.392 表 %钮 桌个 甬3 1为2T3? 25? 1U、告指,3、删除0,国出2H4、32 V 1U 1?册惊至务结臣5.删闱禺却结专娄7 1的第第我在在;操、nl择开 H2i 土原株出I=1112主I-H建:f.置1 - - ,. 39 2 - vfei 2殖个9 再 S -rt 3 、73

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号