数据结构课程设计 - 集合运算(完整) 下载本文

内容发布更新时间 : 2024/12/23 22:33:21星期一 下面是文章的全部内容请认真阅读。

集合运算

电子与信息工程学院数据结构

实 验 报 告

实验名称: 集合的运算

实验类型: 设 计 (验 证、设 计、创 新)

班 级: 2013级电信三班 学 号: 201307014327 姓名: 陆杰 实验时间: 2015 年 6 月 16 日 指导教师: 余先伦 成绩:

1

集合运算

目录

一 课程设计目的和要求 二 问题描述及分析

三 算法思想和程序的实现概述

3.1 算法思想

3.2 程序的实现概述

四 程序流程图

流程图

五 程序的实现

5.1 主函数

5.2 链表的生成 5.3 集合的输出 5.4 并运算函数 5.5交运算函数 5.6 差函数

六 运行结果分析

6.1 程序主界面 6.2整数集合并运算 6.3 整数集合交运算 6.4 整数集合差运算 6.5 字母集合并运算 6.6 字母集合交运算 6.7 字母集合差运算

6.8 字母和数据集合并运算 6.9 字母和数据集合交运算 6.10 字母和数据集合差运算 6.11 退出程序

七 源代码 八 总结 九 参考文献

2

集合运算

一 课程设计目的和要求

目的:深入理解数据结构的基本理论,掌握数据存储结构的设计方法,掌握基于数据结构的各种操作的实现方法,训练对基础知识和基本方法的综合运用能力,增强对算法的理解能力,提高软件设计能力。在实践中培养独立分析问题和解决问题的作风和能力。

要求:熟练运用C++语言、基本数据结构和算法的基础知识,独立编制一个具有中等难度的、解决实际应用问题的应用程序。通过题意分析、选择数据结构、算法设计、编制程序、调试程序、软件测试、结果分析、撰写课程设计报告等环节完成软件设计的全过程,不断地完善程序以提高程序的性能。

二 问题描述及分析

问题描述:

本课程设计中,集合的元素可以是字母[a,b,…z],也可以是整数[0,1,…9],集合的大小集合输入的形式为一个以“回车符”为结束标志的字符,允许出现重复字符或非法字符,程序应能自动滤去。输出的运算结果字符串中将不含重复字符或非法字符。 问题描述:

有两个集合A、B,要求它的交集、并集和差集C。用两个链表p、q存储集合A、B,用链表r存储集合C。描述该问题的存储结构,算法,并通过编写程序来实现。

问题分析:

3

集合运算

1. 定义一个链表来存储集合元素;

2. 链表L包括数据域和指针域,数据域中存储集合元素,指针域中存储下一个集合元素的位置;

3. 创建若干个基本函数,通过函数调用对链表进行操作,实现集合的交、并、差运算。

三 算法思想和程序的实现概述

3.1 算法思想

定义一个链表,链表有整型数据和一个指向链表的指针,程序包含定义一个新链表的函数,集合并函数,集合交函数,集合差函数。求两集合交集并集差集从两集合的头结点开始,比较两集合元素大小,进行对应的操作,直到读取到两集合的末尾元素。主程序先定义三个集合,创建集合A读入A数据,创建集合B读入B数据,然后输出集合A,B的元素,求出两集合并集并输出。求两集合的交集和差集的运算与求并集的步骤类似,只需按提示输入即可。

3.2 程序的实现概述

(1)输入的形式和输入值的范围:

输入是从键盘输入的,输入的内容为整数。 (2)输出的形式

从屏幕输出,显示用户输入集合的元素,并显示进行运算后的值。 (3)存储结构

在这次设计中开始我是采用链式存储结构,使得集合的算法定义十分简洁。 (4)算法实现

定义链表,创建链表,输出链表。利用链表的来存储集合。利用三个函数分别实现课程要求程序实现的求并、求交和差三中运算。现分述如下:

A)并运算函数

4