集合的交并差设计文档c++ 下载本文

内容发布更新时间 : 2024/5/2 9:11:32星期一 下面是文章的全部内容请认真阅读。

兰州交通大学

数理与软件工程学院

数 据 结 构 课 程 设 计

专 业:XXXXXXXXX 姓 名:XXXXXXXXX 学 号:XXXXXXXXXXXXXX 指导老师:XXXXXXXXXXXXXXX 时 间:2011-7-9

兰州交通大学《数据结构与算法》课程设计

目 录

一.实习目的...............................................................................3 二.需求分析...............................................................................3 1问题描述 2基本功能 3输入和输出

三.概要设计...............................................................................3 1数据结构设计 2存储结构设计 3系统中子程序及功能 4各程序模块之间的调用关系

四.详细设计...............................................................................5 五.调试与测试分析...................................................................7 1调试 2测试

六.使用说明...............................................................................9 七.总结和心得...........................................................................9 八.参考文献...............................................................................9 九.附录......................................................................................9

- 2 -

兰州交通大学《数据结构与算法》课程设计

集合的交、并和差运算的实现

一.实习目的

1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2.初步掌握程序设计过程中的结构化程序设计的一般方法,及数据类型在设计中的应用。

3.能够利用所学的基本知识和技能,解决简单的程序设计问题; 4.培养了我们的团队合作精神,培养了我们对面向对象高级语言的编写能力,从而提高我们的编程综合能力。

5.学会用有序表和集合对集合的并、交和差运算。 二.需求分析

1问题描述:用有序单链表表示集合,实现集合的交、并、差运算,且空间复杂度为O(1)

2基本功能:可快速的分别求出两个字符集合的交、并、差。 3输入和输出:

(1)输入:在C++环境下编写的程序,其输入是简单、方便的,即 按提示分别输入两集合的元素。

? 输入字符的范围:小写字母a,b,...,y,z,大写字母A,B,...Y,Z,和数

字0,1,...8,9;

? 输入形式:字符集合,按顺序大小排序输入,允许出现重复字符,程序

能自动滤去;

(2)输出:程序采用单链表的存储结构,使得运算快捷简便,显示的结果也明了。 输出结果不含重复或非法字符; 三.概要设计

1数据结构设计

数据对象:属于同一个结构体的集合。 数据关系:具有线性关系。 基本操作:

(1) InitLinkList(LinkList Head):初始化集合

(2) Check(char ch,LinkList Head):检查p1或p2所指向数据结点该不该加入到Head为起始的集合中

(3)Merge(LinkList Head1,LinkList Head2):合并两个集合 (4)IsExist(char data,LinkList Head); IsExist2(char data,LinkList Head): 集合A中的元素,B中是否存在

(5)Deprive(LinkList Head1,LinkList Head2):两个集合的差集 (6)Insection(LinkList Head1,LinkList Head2):两个集合交集 (7)PrintLinkList(LinkList Head):打印集合元素

2存储结构设计

- 3 -