数据结构实验报告:集合的交叉并

《数据结构》实验报告

题目:集合的并、交、差 专业:信息管理与信息系统 组别:一

班级:17信管3

完成日期:2018年 10月 23 日

组长:胡源

评分依据及结果

态度(A-D) 规范性(A-D) 完成度(A-D) 评 语 代码分工情况

姓名 胡源 肖晓红 景新月 关延宇 杜彪 总评(A-D) 工作内容 改进代码 编写原始 代码 调试代码 处理bug 运行代码 实验报告分工情况

姓名 胡源 肖晓红 景新月 报告细节处理 关延宇 实验调试和截图 杜彪 报告整合 工作内容 报告初稿 报告规范

化处理 一、 需求分析

1. 本演示程序中,集合的元素限定为小写字母和数字,集合的大

小小于MAXSIZE=100(可以通过宏定义来动态改变大小)。集合的输入形式为以一个“回车符”为结束标志的字符串,串中字符顺序不限。程序能自动过滤出现的重复字符和非法字符,且经过过滤的集合中,数字始终在字母前面。输出运算结果字符中不含重复字符或非法字符。

2. 演示程序以用户和计算机的对话方式执行,即在计算机终端上

显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,相应的输入数据(除去非法字符)和运算结果显示在其后。

3. 程序的执行命令包括:

1)构造集合1; 2)构造集合2; 3)求并集; 4)求交集; 5)求差集; 6)程序结束。

“构造集合1” 和“构造集合2”时,需要以字符串的形式链入集合元素。 4. 测试数据

(1) Set1=”abcdefg”,Set1=”123456”(未赋值时的原始集合)

Set2∩Set2=”123456abcdefg”, Set2∩Set2=” ”, Set2-Set2=”abcdefg”

(2) Set1=”1314524huyuan”,Set1=”748fuck”

Set2∩Set2=”12345678acfhknuy”, Set2∩Set2=” 4u”,

Set2-Set2=”1235ahny”

(3) Set1=”1314524huyuan数据结构”,Set1=”958abcd考研”

Set2∩Set2=” 1234589abcdhnuy”, Set2∩Set2=” 5a”, Set2-Set2=” 1234hnuy”

二、 概要设计

用有序链表表示集合来使程序达到预期功能。因此,需要一个抽象数据类型:有序集合。

1. 有序集合的抽象数据类型定义为: ADT OrderedList{

数据对象:D={a|a为数字(1-9)或字母(a-z)}

数据关系:R={|a[i-1],a[i]∈D,a[i-1]

基本操作: InitList(&L)

操作结果:构造空的有序链集合 LocateElem(L, e, &p)。

初始条件:L为存在的有序表,e为一个字符

操作结果:如果能找到元素,p带回e元素的下标,结果为true。若找不到元素,用p带回比与元素e最近的一个元素的位置。如果e元素比所有元素都要小,返回指向头结点的指针,结果为false。 InsertAfter(&L, q, s)

初始条件:L为存在的有序表,q是指向L中一个结点的指针。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4