实验二 链表的实现及应用

本文是关于链表实现的实验报告,旨在理解线性表的链式存储结构,通过C语言实现线性表的插入、删除、查找和合并操作。实验中,错误的代码被指出并进行修正,最后成功调试出正确结果。
摘要由CSDN通过智能技术生成

实验二 链表的实现及应用

一、实验实习目的及要求

了解和掌握线性表的链式存储结构;掌握用C语言上机调试线性表的基本方法;掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结构上的运算,以及对相应算法的性能分析。

二、实验实习设备(环境)及要求(软硬件条件)

实验室,使用VC上机调试出正确结果

三、实验实习项目、内容与步骤

给定一段程序代码,程序代码所完成的功能为:(1)建立一个线性表;(2)依次输入数据元素1,2,3,4,5,6,7,8,9,10;(3)删除数据元素5;(4)依次显示当前线性表中的数据元素。假设该线性表的数据元素个数在最坏情况下不会超过100个,要求使用单链表。
程序中有3处错误的地方,有标识,属于逻辑错误,对照书中的代码仔细分析后,要求同学们修改错误的代码,上机调试并得到正确的运行结果。

四、实验实习所得结果及分析

1、 是将P的后继结点赋值给q的后继

q->next = p->next;
p->next = q;
return 1;

2、将p的后继赋值给s,并且要先将s的后继赋值给p的后继在将s中的数据给x

s = p->next; 
p->next = s->next;
*x = s->data;

3、将p的数据给x而不是将p的后继给x

*x = p->data;
return 1;

五、实验实习结果分析和(或)源程序调试过程

1、算法设计思路

•定义一个链表并将它打印出来。
•用尾插法构建单链表。
•用while循环来比较链表中数据的大小,LA数据大于LB数据时,将LB数据赋值给合并表merge_list并且实现LB = LB ->next返回循环。LA数据小于LB数据时,将LA数据赋值给合并表merge_list并且实现LA = LA ->next返回循环。LA数据等于LB数据时,将LA数据赋值给合并表merge_list并且实现LA = LA ->next,LB = LB ->next返回循环。当一个表为空时就将另一个表中数据赋值给合并表。
•写出主函数并调用上述算法。

2、代码如下

#include <stdio.h>
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值