文件名称:数据结构 C语言 设计集合抽象数据类型
文件大小:5KB
文件格式:CPP
更新时间:2011-05-28 15:16:51
C语言 数据结构 集合
1. 本演示程序中,集合元素限定为数字,大小由用户输入。集合中数字顺序不限,且一旦出现重复字符或非法字符,程序能自动滤去。输出的运算结果中将不含重复数字或非法字符,且按照从小到大的顺序输出。
2. 演示程序以用户和计算机的对话方式执行,即在计算机上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的数据输入和运算结果显示在其后。
3. 程序执行的命令包括:
(1)构造集合1;(2)构造集合2;(3)判断某数是否为集合元素;(4)添加元素;(5)删除元素;(6)求并集(存入集合1中);(7)求交集(存入集合3中);(8)输出集合1;(9)输出集合2;(0)退出。
“构造集合1”和“构造集合2”时,需以整型数字形式键入集合元素。
为实现上述程序功能,以线性链表表示集合。为此,需要两个抽象数据类型:线性表和集合。
1. 线性表的抽象数据类型定义为:
ADT LinkList{
数据对象:D={ | IntSet,i=1,2,…,n,n 0}
数据关系:R1={< , >| , D, < ,i=2,…,n}
基本操作:
InitList(*L)
操作结果:构造一个空的线性链表L。
IsElement(*L,e)
初始条件:线性表L已存在。
操作结果:若e是L的数据元素,返回1,否则返回0。
Append(*L,e)
初始条件:线性表已存在。
操作结果:按照由大到小的顺序往线性表里插入元素e,不允许重复元素。
Delete(*L,e)
初始条件:线性表已存在。
操作结果:在L中删除元素e。
}ADT LinkList
2. 集合的抽象数据类型定义为:
ADT LinkSet {
数据对象:D={ | IntSet,i=1,2,…,n,n 0}
数据关系:R1={}
基本操作:
CreatSet(*L)
初始条件:s为整型数组。
操作结果:生成一个由s中数字构成的集合。
Union(*S1,*S2)
初始条件:集合S1和S2存在。
操作结果:生成一个由S1和S2的并集构成的集合,返回到S1。
Intersection (*S1,*S2)
初始条件:集合S1和S2存在。
操作结果:生成一个由S1和S2的交集构成的集合,返回到S1。
PrintSet (*S)
初始条件:集合S已存在。
操作结果:依次显示集合S中的全部元素。
}ADT LinkSet
带菜单
Turbo c 3.0编写