实验二报告
一、实验目的
1、 掌握线性表的链式存储结构的表示和实现方法。
2、 掌握链表基本操作的算法实现。
二、实验内容
1、 建立单向链表,并在单链表上实现插入、删除和查找操作(验证性内容)。
2、 建立双向链表,并在双向链表上实现插入、删除和查找操作(设计性内容)。
3、 计算已知一个单链表中数据域值为一个指定值x的结点个数(应用性设计内容)。
三、知识准备
前期要求熟练掌握了C语言的编程规则、方法和单链表和双向链表的基本操作算法。
四、验证性试验
试验要求
编程实现如下功能:
(1)根据输入的一系列整数,以0标志结束,用头插法建立单链表,并输出单链表中各元素值,观察输入的内容与输出的内容是否一致。
(2)在单链表的第i个元素之前插入一个值为x的元素,并输出插入后的单链表中各元素值。
(3)删除单链表中第i个元素,并输出删除后的单链表中各元素值。
(4)在单链表中查找第i个元素,如果查找成功,则显示该元素的值,否则显示该元素不存在。
五、设计性试验
编程实现在双向循环链表上的插入和删除操作
实验要求
(1)输入链表的长度和各元素的值,用尾插法建立双向循环 链表,并输出链表中各元素值,观察输入的内容与输出的内容是否一致。
(2)在双向循环链表的第i个元素之前插入一个值为x的元素,并输出插入后的链表中各元素值。
(3)删除双向循环链表中第i个元素,并输出删除后的链表中各元素值。
(4)在双向循环链表中查找值为x元素,如果查找成功,则显示该元素在链表中的位置,否则显示该元素不存在。
六、应用性设计实验
编写一个程序,计算出一个单链表中数据域值为一个指定值x的结点个数。 实验要求:
(1)从键盘输入若干个整数,以此序列为顺序建立一个不带头结点的单向链表;
(2)输出此单链表中d的各个数据元素值;
(3)给定一个x的具体整数值,计算并返回此单链表中数据域值为x的结点个数值。 程序代码:
一、验证性实验:
#include
#include
typedef struct LNode{
int data;
struct LNode *next;