1 一 、 数据结构定义 1 . 抽象数据类型 本设计中用到的数据结构ADT 定义如下: ADT List{ 数据对象:D={|,1,2,, ,0iiaaElemSet in n} 数据关系:1R ={11,|,,1,2,,iiiiaaaaD in} 基本操作:InitList(&L) 操作结果:构造一个空的线性表L; DestroyList(&L) 初始条件:线性表L 已存在 操作结果:销毁线性表L ClearList(&L) 初始条件:线性表L 已存在 操作结果:将L 重置为空表 ListEmpty(L) 初始条件:线性表L 已存在 操作结果:若L 为空表,则返回TRUE,否则返回FALSE ListLenght(L) 初始条件:线性表L 已存在 操作结果:返回L 中数据元素的个数 2 2. 存储结构定义 数据存储结构的C 语言定义如下: typedef struct LNode//定义单链表结点类型 { ElemType data; struct LNode *next; }LinkList; 3. 基本操作 数据结构的基本操作实现如下: DispList(LinkList *L):输出单链表L CreatListR(LinkList *&L,ElemType a[],int n):运用尾插法建立单链表 Sort(LinkList *&head):单链表元素排序 shanchu(LinkList *&head):在进行过Sort 排序之后,删除单链表里相同的元素 bing(LinkList *&ha,LinkList *&hb,LinkList *&hc ):求两个有序集合的并 jiao(LinkList *ha,LinkList *hb,LinkList *&hc):求两个有序集合的交 cha(LinkList *ha,LinkList *hb,LinkList *&hc):求两个有序集合的差、 main():采用尾差法建立单链表,使用Sort 进行单链表排序构成有序链表,在使用shanchu 函数删除相同元素和非小写字母。利用一个switch 语句进行运算的选择,使用相关函数对有序链表进行交并差的相关运算 3 二 、 解题过程 1. 问题分解 该问题主要应实现以下功能: 1 . 利用尾差法建立单链表 2 . 对于输入的链表进行有序排列 3 . 删除有序链表中不符合要求的元素 4 . 调用函数对单链表进行交,并,差运算,并输出 2. 模块结构 系统主要由8 个模块组成,分别是: 1 . 单链表的建立 2 . 单链表的有序排列 3 . 删除单链表中不符合条件的元素 4 . 集合交集 5 . 集合并集 6 . 集合差集 7 . 单链表输出 8 . 主函数 4 模块之间的结构如下: 3 . 解题思路 各模块的实现步骤为: 主函数 单链表的建立及由于排列 删除不符合条件的元素 单链表输出 集合交集 集合并集 集合差集 5 1. 在尾差法建立单...