用链表实现集合交并补等运算.docVIP

  • 87
  • 0
  • 约 23页
  • 2017-02-08 发布于重庆
  • 举报
用链表实现集合交并补等运算

武汉轻工大学 数学与计算机学院 《数据结构》 课程设计 需求分析 【问题描述】 编制一个能演示执行集合的并、交和差运算的程序。 【基本要求】 (1) 集合的元素限定为小写字母字符 [‘a’..’z’] 。 (2) 演示程序以用户和计算机的对话方式执行。 【测试数据】 (1)Set1=agazine,Set2=paper, Set1∪Set2=aegimnprz,Setl ∩Set2=ae,Set1-Set2=gimnz。 (2)Set1= 012oper4a6tion89,Set2=error data, Set1∪Set2=adeinoprt,Setl ∩Set2=aeort,Set1-Set2=inp。 解题思路 1.在尾差法建立单链表时,开始时指针指向头结点。 2.建立有序列表是利用指针的移动来是后续的元素和第一次个元素进行比较,并使用while循环实现单链表的有序排列。 3.判定有序单链表中的重复元素定义指针p,通过指针p访问链表中的元素并且通过if语句检测链表中的元素。对于不属于小写字母的元素判定后进行删除操作。 4.定义三个头结点pa,pb,pc,把ha的元素赋给hc,在使用指针移动与hb中的元素进行比较,不同的元素则插入到hc中,相同时指针移动到ha的下一个元素。当ha为空,直接把hb赋给hc。 5.同样定义了三个结点,不过hc是pa与pb不同的元素。 6.差集是通过指针的移位把两个有序单链表中的元素进行比较,不同的话,则赋给hc。 7.利用主函数把有序单链表,及三个函数输出链表进行输出 8.主函数通过一个switch语句,方便的对函数进行调用,从而进行集合的交,并,差运算。 二. 概要设计 为实现上述程序功能,应以有序链表表示集合。为此,需要两个抽象数据类型:有序表和集合。 1. 有序表的抽象数据类型定义为: ADT OrderedList { 数据对象:D={ai|ai(CharSet,i=1,2,...,n, n( 0} 数据关系:Rl={ai-1,ai|ai-1,ai(D,ai-1ai,i=2,...,n} 基本操作: InitList(L) 操作结果:构造一个空的有序表L。 DestroyList(L) 初始条件:有序表L已存在。 操作结果:销毁有序表L。 ListLength(L) 初始条件:有序表L已存在。 操作结果:返回有序表L的长度。 ListEmpty(L) 初始条件:有序表L已存在。 操作结果:若有序表L为空表,则返回True,否则返回 False。 GetElem(L ,pos) 初始条件:有序表 L 已存在。 操作结果:若 1(pos(Length(L),则返回表中第pos个数据元素。 LocateElem(L,e , q) 初始条件:有序表L已存在。 操作结果:若有序表L中存在元素e,则q指示L中第一个值为e的元素的位置,并返回函数值TRUE,否则q指示第一个大于 e 的元素的前驱的位置 , 并返回函数值 FALSE。 Append (L,e) 初始条件:有序表L已存在。 操作结果:在有序表L的未尾插入元素e。 InsertAfter(L,q,e) 初始条件:有序表L已存在,q指示L中一个元素。 操作结果:在有序表L中q指示的元素之后插入元素e。 ListTraverse(q,visit()) 初始条件:有序表L已存在,q指示L中一个元素。 操作结果:依次对L中q指示的元素开始的每个元素调用函数visit()。 }ADT OrderedList 2. 集合的抽象数据类型定义为: ADT Set{ 数据对象:D={ai|ai为小写英文字母且互不相同,i=l,2,...,n,0(n(26} 数据关系:R1={} 基本操作:Createset(T,Str) 初始条件:Str为字符串。 操作结果:生成一个由Str中小写字母构成的集合T。 Destroyset(T) 初始条件:集合T已存在。 操作结果:销毁集合T的结构。 Union(T,SL S2) 初始条件:集合S1和S2存在。 操作结果:生成一个由Sl和S2的并集构成的集合T。 Intersection(T,SL S2) 初始条件:集合Sl和S2存在。 操作结果:生成一个由Sl和S2的交集构成的集合T。 Difference(T,S1,S2) 初始条件:集合S1和S2存在。 操作结果:生成一个由S1和S2的差集构成的集合T。 Printset(T) 初始条件:集合T已存在。 操作结果:按字母次序顺序显示集合T的全部元素。 }ADT Set 3.模块结构: 系统主要由8个模块组成,分别是: 1.单链表的建立 2.单链表的有序排列 3.删除

文档评论(0)

1亿VIP精品文档

相关文档