




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
郑州轻工业学院
《数据结构》课程实验
实验报告
题目:单链表表的基本操作及C语言实现
专业:__________信息管理与信息系统
班级:_______________11-01________________________
姓名:________________高博文________________________
完毕日期:____________2023/5/23___________________
一、实验内容
用C语言实现单链表的建立插入删除查找,合并等内容
二、实验目的
掌握链表的基本操作:插入、删除、查找等运算,可以灵活应用链表这种数据结构,进一步对
链表链式结构的了解。
三.源程序代码
#include<stdio.h>
#inc1ude<stdlib.h>
typedefintE1emtype:
typedefintStatus;
typedefstructnode〃定义存储节点
(
intdata;//数据域
structnode*next;//结构体指针
}*link1ist,node;//结构体变量,结构体名称
linklistcreat(intn)//创建单链表
(
°linklisthead,r,p;〃定义头指针r,p,指针
intx,i;
head=(node*)malloc(sizeof(node));〃生成头结点
。r=head;//r指向头结点
printf("输入数字:\n");
°for(i=n;i>0;i--)//for循环用于生成第一个节点并读入数据
°{
oscanf(n%dx);
。叩二(node*)malloc(sizeof(node));
p->data=x;〃读入第一个节点的数据
阿->next=p;//把第一个节点连在头结点的后面
。尸P;//循环以便于生成第二个节点
r->next=O;//生成链表后的断开符
returnhead;//返回头指针
)
voidoutput(linklisthead)//输出链表
(
linklistp;
p=head->next;
o
(
printf(n%3dH,p->data);
ep=p—>next;
0)
while(p);
oprintf("\n");
)
Statusinsert(linklist&1,inti,Elemtypee)//插入操作
(
“ntj=0;
linklistp=l,s;
while(j<i-l&&p)
(
叩二p->next;
++j:
)
if(!p|Ij>i-1)
^return-1;
e1se
gs=(node*)ma11oc(sizeof(node));
s->data=e;
。s->next=p->next;
®p->next=s;
dreturn1;
°)
)
Statusde1ect(linklist&1,inti,Elemtype&e)〃删除操作
(
Antj=0;
linklistp=1,q;
whi1e(j<i-1&&p->next)
(
叩二P->next;
++j;
)
if(!p->next|Ij>i-1)
^return-1;
else
(
oq=p->next;
叩->next=q->next;
e=q->data;
free(q);
®return1;
voidcombine(1ink1istla,link!istlb)//合并单链表
0node*pa,*pb,*pc;
olinklist1c;
。pa=la->next;
pb=lb—>next;
lc=pc=la;
while(pa&&pb){
oif(pa->data<=pb->data){
gpc—>next=pa;
gpc=pa;
^pa=pa->next;
)
e1se{pc->next=pb;pc=pb;pb=pb->next;}
)
叩c->next=pa?pa:pb;
free(lb);
)
StatusGetE1em(linklist1,inti,Elemtype&e)〃查找操作
(
。linklistp;
°intj;
p=l->next;
J=1;
。whi1e(p&&j<i)
p=p->next;
0++j;
)
。if(!PIIj>i)
oreturn-2;
e=p->data;
oreturne;
)
voidmain()
(
o1inklist1a,lb;
Antn;
inti,j;
E1emtypee;
printf("请输入第一个链表:\nH);
printf("输入链表元素的个数:\n");
seanf(n%dn,&n);
01a=creat(n);
叩rintf("输出链表:\n)
output(la);
叩rintf(”请输入要查找元素的位置:\n");
scanf(u%dM,&i);
j=GetE1em(la,i,e);
中rintf("所要查找的元素是%d\n",j);
Printf("请输入插入位置和元素:'n");
scanf("%d%d”,&i,&e);
insert(la,i,e);
Printf("插入后的链表:\n");
output(1a);
Printf("请输入要删除的位置:\n");
scanf("%d",&i);
delect(1a,i,e);
Printf("删除的那个元素是:%d\n",e);
printf("输出删除后的顺序表:\n");
outpul(la);
oprintf("请输入第一个非递减链表:\n");
。printf("输入链表元素的个数:\n");
seanf("%d",&n);
la=creat(n);
printf("输出链表:\n");
•output(1a);
printf("请输入第二个非递减链表:\n");
•printf("输入链表元素的个数:\n");
scanf("%d",&n):
1b=creat(n);
oprintf("输出链表:\n");
oulput(lb);
combine(1a,lb);
printf("输出合并后的链表:\n");
°output(la);
)
运营结果如下:
,*C:\Users\moyuxuan\Desktop\Debug\thl.exe"
输入链袤元去的个数:
谿入数字:
1
3
5
输出链表:
1357
请输入要查找元素的位置:
2
2
立人后的链表:
1535?
请输入要删除的位置:
#犒翻嘉谭塞
却整需臂表:
■入数字:
1
2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 14888-4:2024 EN Information security - Digital signatures with appendix - Part 4: Stateful hash-based mechanisms
- 2025年充电桩充电设备生产许可证申请与审批合同
- 2025年度新能源汽车充电桩建设与运营服务合同-@-3
- 2024 年度中国汽车行业争议解决报告
- 2025年度小时工维修养护服务合同范本
- 2025年度知识产权保险产品代理与服务合同
- 2025年心电遥测监护仪项目合作计划书
- 英语-黑龙江省大庆市实验中学2024-2025学年高一上学期阶段考试
- 2025年沥青试验仪器项目合作计划书
- 2025年度走读生户外活动安全责任承诺协议范本
- 颅内动脉瘤介入治疗课件
- 马蹄焰玻璃窑炉设计技术培训-课件
- 2023年主治医师(中级)-眼科学(中级)代码:334考试历年真题集锦附答案
- 种植林业可行性研究报告
- 测试文档-可能-歌词1
- 金和物业公司简介
- 电力安全工作规程-(电网建设部分)
- 广东省五年一贯制考试英语真题
- 项目部岗位廉洁风险情景教育案例
- 小学英语-What a dream教学设计学情分析教材分析课后反思
- 数据分析系统Hive培训课件
评论
0/150
提交评论