- 125
- 0
- 约1.04万字
- 约 13页
- 2021-11-26 发布于上海
- 举报
大学数据结构实验报告
课程名称 数据结构实验 第(四)次实验 实验名称 链表的基本操作
学生姓名 于歌 专业班级 学号
实验成绩 指导老师(签名 ) 日期 2018 年 10 月 01 日
一、实验目的
1. 学会定义单链表的结点类型,实现对单链表的一些基本操作和具体
的函数定义,了解并掌握单链表的类定义以及成员函数的定义与调用。
2. 掌握单链表基本操作及两个有序表归并、 单链表逆置等操作的实现。
二、实验要求
1.预习 C 语言中结构体的定义与基本操作方法。
2.对单链表的每个基本操作用单独的函数实现。
3.编写完整程序完成下面的实验内容并上机运行。
4.整理并上交实验报告。
三、实验内容:
1.编写程序完成单链表的下列基本操作:
(1)初始化单链表 La
(2 )在 La 中插入一个新结点
(3 )删除 La 中的某一个结点
(4 )在 La 中查找某结点并返回其位置
(5 )打印输出 La 中的结点元素值
(6 )清空链表
(7 )销毁链表
2 .构造两个带有表头结点的有序单链表 La 、Lb ,编写程序实现将 La 、
Lb 合并成一个有序单链表 Lc 。
四、思考与提高:
1.如果上面实验内容 2 中合并的表内不允许有重复的数据该如何操
作?
2.如何将一个带头结点的单链表 La 分解成两个同样结构的单链表 Lb ,
Lc ,使得 Lb 中只含 La 表中奇数结点, Lc 中含有 La 表的偶数结点?
五、实验设计
1.编写程序完成单链表的下列基本操作:
(1)初始化单链表 La
LinkList InitList()
{
int i,value,n;
LinkList H=(LinkList)malloc(sizeof(LNode));
LinkList P=H;
P-next=NULL;
do{
printf( 请输入链表的长度 :);
scanf(%d,n);
if(n=0)
printf( 输入有误请重新输入! \n);
}while(n=0);
printf( 请输入各个元素 :\n);
for(i=0; in; i++)
{
scanf(%d,value);
LinkList NEW = (LinkList)malloc(sizeof(LNode));
NEW-data=value;
P-next=NEW;
NEW-next=NULL;
P=NEW;
}
printf( 链表建立成功! \n);
return H-next;
}
(2)在 La 中插入一个新结点
LinkList InsertList(LinkList L,int i,ElemType value)
{
LinkList h,q,t=NewLNode(t,value);
int x=0;
h=q=L;
if(i==1)
t-next=h, h=t;
else
{
while(x++i-2)
q=q-next;
t-next=q-next;
q-next=t;
您可能关注的文档
最近下载
- 博林特电梯MPK708C调试-故障说明手册.pdf VIP
- 《锅炉》课后习题答案-西安交大版.pdf VIP
- 唐山中浩化工有限公司利用锅炉余压发电技改项目环境影响报告书(简本).doc VIP
- 二年级(下)语文1-4单元一课一练含答案.docx
- Cultural!Learning!Alliance!! (联盟文化!学习! ! !).pdf VIP
- 人教版2024~2025学年七年级上册数学核心素养全册教案.doc VIP
- 项目经理部穿透式管理实施细则.doc VIP
- 2025自动化工程师岗试题及答案.doc VIP
- DLT2617-2023 20kV配电线路带电作业技术规范.pdf VIP
- 18黄伯荣、廖序东《现代汉语》增订6版课件_第5章 语法 第八、九、十节.pptx VIP
原创力文档

文档评论(0)