![](https://csdnimg.cn/release/download_crawler_static/87232873/bg5.jpg)
实验二 链表
【实验目的】
熟练掌握线性表在链式存储结构上的基本操作。
【实验平台】
操作系统:Windows2000 或 Windows XP
开发环境:C 或 C++
【实验内容及要求】
单链表的查找、插入与删除。设计算法,实现线性结构上的单链表的产生以及元素的查找、
插入与删除。具体实现要求:
9. 从键盘输入 20 个整数,产生带表头的单链表,并输出结点值。
10. 从键盘输入 1 个整数,在单链表中查找该结点。若找到,则显示“找到了”;否则,则显示
“找不到”。
11. 从键盘输入 2 个整数,一个表示欲插入的位置 i,另一个表示欲插入的数值 x,将 x 插入在对
应位置上,输出单链表所有结点值,观察输出结果。
12. 从键盘输入 1 个整数,表示欲删除结点的位置,输出单链表所有结点值,观察输出结果。
13. 将单链表中值重复的结点删除,使所得的结果表中个结点值均不相同,输出单链表所有结点
值,观察输出结果。
14. 删除其中所有数据值为偶数的结点,输出单链表所有结点值,观察输出结果。
15. 把单链表变成带表头结点的循环链表,输出循环单链表所有结点值,观察输出结果。
16. (★)将单链表分解成两个单链表 A 和 B,使 A 链表中含有原链表中序号为奇数的元素,而
B 链表中含有原链表中序号为偶数的元素,且保持原来的相对顺序,分别输出单链表 A 和单
链表 B 的所有结点值,观察输出结果。
【参考框架】
#include <stdio.h>
#include <stdlib.h>
//单链表的定义:
typedef int DataType; //DataType 可以是任何相应的数据类型如 int, float
或 char
typedef struct node //结点类型定义
{ DataType data; //结点的数据域
struct node *next; //结点的指针域
}ListNode;
typedef ListNode *LinkList;
void main()
{
int i;