数据结构实验报告样例
数据结构实验报告样例

数据结构实验报告样例第五章实验报告在做完实验以后写实验报告,是整个实验过程的⼀个重要环节。
报告的撰写过程实际是对整个实验的总结与回顾,有助加深对实验的理解,提⾼对实验的认识。
本章介绍如何撰写实验报告。
2.1如何撰写实验报告对于每⼀个实验中所要求解决的问题,都应该有规范详细的报告⽂档,本实验要求报告的规范如下:⼀、问题描述1.实验题⽬:⼀般教材中会给出实验题⽬。
2.基本要求:实验的基本要求,⼀般也会在教材中给出。
3.测试数据:实验中要⽤到的测试数据,部分实验由教材提供。
⼆、需求分析1.程序所能达到的基本可能。
2.输⼊的形式及输⼊值范围3.输出的形式4.测试数据要求三、概要设计1.所⽤到得数据结构及其ADT2.主程序流程及其模块调⽤关系3.核⼼模块的算法伪码四、详细设计1. 实现概要设计中的数据结构ADT2. 实现每个操作的伪码,重点语句加注释3. 主程序和其他模块的伪码4. 函数调⽤关系图五、调试分析1.设计与调试过程中遇到的问题分析、体会2.主要算法的时间和空间复杂度分析六、使⽤说明简要给出程序的运⾏和操作步骤。
七、测试结果给出实验结果,包括输⼊和输出。
⼋、附录带注释的源程序。
2.2实验报告样例⼀、问题描述1.实验题⽬:利⽤有序链表表⽰正整数集合,实现集合的交、并和差运算。
2.基本要求:有⽤户输⼊两种整数分别作为两个集合元素,由程序计算它们的交、并和差,并输出结果。
3.测试数据:S1={3,5,6,9,12,27,35} S2={5,8,10,12,27,31,42,51,55,63}运⾏结果应为:S1∪S2={3,5,6,8,9,10,12,27,31,35,42,51,55,63}S1∩S2={5,12,27}S1-S2={3,6,9,35}⼆、需求分析1.本程序⽤来求出任意两个正整数集合的交、并、差。
2.程序运⾏后显⽰提⽰信息,提⽰⽤户输⼊两组整数,程序需⾃动顾虑重复的整数和负数。
3. ⽤户输⼊完毕后,程序⾃动输出运算结果。
《数据结构》实验报告模板(附实例)--实验一线性表的基本操作实现

《数据结构》实验报告模板(附实例)---实验一线性表的基本操作实现实验一线性表的基本操作实现及其应用一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现,其中以熟悉各种链表的操作为重点。
2、巩固高级语言程序设计方法与技术,会用线性链表解决简单的实际问题。
二、实验内容√ 1、单链表的表示与操作实现 ( * )2、约瑟夫环问题3、Dr.Kong的艺术品三、实验要求1、按照数据结构实验任务书,提前做好实验预习与准备工作。
2、加“*”题目必做,其他题目任选;多选者并且保质保量完成适当加分。
3、严格按照数据结构实验报告模板和规范,及时完成实验报告。
四、实验步骤(说明:依据实验内容分别说明实验程序中用到的数据类型的定义、主程序的流程以及每个操作(成员函数)的伪码算法、函数实现、程序编码、调试与分析、总结、附流程图与主要代码)㈠、数据结构与核心算法的设计描述(程序中每个模块或函数应加注释,说明函数功能、入口及出口参数)1、单链表的结点类型定义/* 定义DataType为int类型 */typedef int DataType;/* 单链表的结点类型 */typedef struct LNode{ DataType data;struct LNode *next;}LNode,*LinkedList;2、初始化单链表LinkedList LinkedListInit( ){ // 每个模块或函数应加注释,说明函数功能、入口及出口参数 }3、清空单链表void LinkedListClear(LinkedList L){// 每个模块或函数应加注释,说明函数功能、入口及出口参数}4、检查单链表是否为空int LinkedListEmpty(LinkedList L){ …. }5、遍历单链表void LinkedListTraverse(LinkedList L){….}6、求单链表的长度int LinkedListLength(LinkedList L){ …. }7、从单链表表中查找元素LinkedList LinkedListGet(LinkedList L,int i){ //L是带头结点的链表的头指针,返回第 i 个元素 }8、从单链表表中查找与给定元素值相同的元素在链表中的位置LinkedList LinkedListLocate(LinkedList L, DataType x){ …… }9、向单链表中插入元素void LinkedListInsert(LinkedList L,int i,DataType x) { // L 为带头结点的单链表的头指针,本算法// 在链表中第i 个结点之前插入新的元素 x}10、从单链表中删除元素void LinkedListDel(LinkedList L,DataType x){ // 删除以 L 为头指针的单链表中第 i 个结点 }11、用尾插法建立单链表LinkedList LinkedListCreat( ){ …… }㈡、函数调用及主函数设计(可用函数的调用关系图说明)㈢程序调试及运行结果分析㈣实验总结五、主要算法流程图及程序清单1、主要算法流程图:2、程序清单(程序过长,可附主要部分)说明:以后每次实验报告均按此格式书写。
数据结构实验报告实验5

数据结构实验报告实验5一、实验目的本次实验的主要目的是深入理解和掌握常见的数据结构,如链表、栈、队列、树和图等,并通过实际编程实现,提高对数据结构的操作和应用能力。
同时,培养解决实际问题的思维和编程能力,提高代码的可读性、可维护性和效率。
二、实验环境本次实验使用的编程语言为C++,开发环境为Visual Studio 2019。
三、实验内容1、链表的基本操作创建链表插入节点删除节点遍历链表2、栈的实现与应用用数组实现栈用链表实现栈栈的应用:括号匹配3、队列的实现与应用用数组实现队列用链表实现队列队列的应用:排队模拟4、二叉树的遍历前序遍历中序遍历后序遍历5、图的表示与遍历邻接矩阵表示法邻接表表示法深度优先遍历广度优先遍历四、实验步骤1、链表的基本操作创建链表:首先定义一个链表节点结构体,包含数据域和指向下一个节点的指针域。
然后通过动态内存分配创建链表节点,并将节点逐个连接起来,形成链表。
插入节点:根据插入位置的不同,分为在表头插入、在表尾插入和在指定位置插入。
在指定位置插入时,需要先找到插入位置的前一个节点,然后进行节点的连接操作。
删除节点:同样需要根据删除位置的不同进行处理。
删除表头节点时,直接将头指针指向下一个节点;删除表尾节点时,找到倒数第二个节点,将其指针置为空;删除指定位置节点时,找到要删除节点的前一个节点,然后调整指针。
遍历链表:通过从链表头开始,依次访问每个节点,输出节点的数据。
2、栈的实现与应用用数组实现栈:定义一个固定大小的数组作为栈的存储空间,同时用一个变量记录栈顶位置。
入栈操作时,先判断栈是否已满,如果未满则将元素放入栈顶位置,并更新栈顶位置;出栈操作时,先判断栈是否为空,如果不空则取出栈顶元素,并更新栈顶位置。
用链表实现栈:与链表的操作类似,将新元素添加在链表头部作为栈顶。
括号匹配:输入一个包含括号的字符串,使用栈来判断括号是否匹配。
遇到左括号入栈,遇到右括号时与栈顶的左括号进行匹配,如果匹配成功则出栈,否则括号不匹配。
数据结构实验实训报告范文

一、实验目的1. 理解并掌握数据结构的基本概念和常用算法。
2. 学会使用C语言实现线性表、栈、队列、树和图等基本数据结构。
3. 培养动手实践能力,提高编程水平。
二、实验内容1. 线性表(1)顺序表(2)链表2. 栈(1)顺序栈(2)链栈3. 队列(1)顺序队列(2)链队列4. 树(1)二叉树(2)二叉搜索树5. 图(1)邻接矩阵表示法(2)邻接表表示法三、实验环境1. 操作系统:Windows 102. 编程语言:C语言3. 编译器:Visual Studio 20194. 实验软件:C语言开发环境四、实验步骤1. 线性表(1)顺序表1)定义顺序表结构体2)实现顺序表的初始化、插入、删除、查找等基本操作3)编写测试程序,验证顺序表的基本操作(2)链表1)定义链表结构体2)实现链表的创建、插入、删除、查找等基本操作3)编写测试程序,验证链表的基本操作2. 栈(1)顺序栈1)定义顺序栈结构体2)实现顺序栈的初始化、入栈、出栈、判空等基本操作3)编写测试程序,验证顺序栈的基本操作(2)链栈1)定义链栈结构体2)实现链栈的初始化、入栈、出栈、判空等基本操作3)编写测试程序,验证链栈的基本操作3. 队列(1)顺序队列1)定义顺序队列结构体2)实现顺序队列的初始化、入队、出队、判空等基本操作3)编写测试程序,验证顺序队列的基本操作(2)链队列1)定义链队列结构体2)实现链队列的初始化、入队、出队、判空等基本操作3)编写测试程序,验证链队列的基本操作4. 树(1)二叉树1)定义二叉树结构体2)实现二叉树的创建、遍历、查找等基本操作3)编写测试程序,验证二叉树的基本操作(2)二叉搜索树1)定义二叉搜索树结构体2)实现二叉搜索树的创建、遍历、查找等基本操作3)编写测试程序,验证二叉搜索树的基本操作5. 图(1)邻接矩阵表示法1)定义邻接矩阵结构体2)实现图的创建、添加边、删除边、遍历等基本操作3)编写测试程序,验证邻接矩阵表示法的基本操作(2)邻接表表示法1)定义邻接表结构体2)实现图的创建、添加边、删除边、遍历等基本操作3)编写测试程序,验证邻接表表示法的基本操作五、实验结果与分析1. 线性表(1)顺序表实验结果表明,顺序表的基本操作实现正确,测试程序运行稳定。
大学数据结构实验报告模板

1、实验目的本实验旨在通过实际操作和代码编写,掌握数据结构的基本概念、常用算法和数据结构的应用能力。
2、实验内容2.1 实验一、线性表的基本操作2.1.1 实验介绍在本实验中,我们将实现线性表的基本操作,包括初始化线性表、插入元素、删除元素、查找元素等。
通过这些基本操作的实现,我们可以加深对线性表的理解。
2.1.2 实验步骤步骤一、初始化线性表步骤二、插入元素步骤三、删除元素步骤四、查找元素2.2 实验二、栈的应用——括号匹配2.2.1 实验介绍在本实验中,我们将使用栈来实现括号匹配。
通过这个应用实例,我们可以更好地理解栈的特性和应用场景。
2.2.2 实验步骤步骤一、括号匹配算法的实现步骤二、测试括号匹配算法3、实验结果与分析3.1 实验一结果分析3.1.1 初始化线性表的效率分析3.1.2 插入操作的效率分析3.1.3 删除操作的效率分析3.1.4 查找操作的效率分析3.2 实验二结果分析3.2.1 括号匹配算法的验证3.2.2 算法的时间复杂度分析3.2.3 算法的空间复杂度分析4、实验总结通过本次实验,我们进一步了解了数据结构的基本概念和应用。
我们通过实际操作和代码编写,加深了对线性表和栈的理解,并且掌握了相关算法的实现和分析方法。
5、附件本实验报告涉及的附件包括:- 代码实现文件- 实验数据统计表格6、法律名词及注释在本文档中,涉及的法律名词和注释包括:- 数据结构:指在计算机科学中,我们用来组织和存储数据的方式或格式。
- 线性表:是最基本、最简单、也是最常用的一种数据结构。
线性表中的数据元素之间是一对一的关系。
- 栈:是一种特殊的线性表,它的插入和删除操作只能在同一端进行。
后进先出(Last In First Out,LIFO)是栈的特性之一。
- 括号匹配:是指检查一个字符串中的所有括号是否匹配完整的过程。
数据结构实验报告 (2)

数据结构实验报告实验报告数据结构实验报告应包含以下几个部分:1. 实验目的:简要介绍实验的目的和意义。
2. 原理介绍:详细介绍本次实验所涉及的数据结构原理,包括数据结构的定义、特性以及相关算法或操作。
3. 实验内容:详细描述本次实验的具体内容,包括实验要求和实验步骤。
4. 实验结果:展示实验的结果,以适当的方式呈现实验数据和实验输出。
可以包括图表、表格、代码等。
5. 分析讨论:分析实验结果,讨论实验结果与预期结果的差异,并给出相应的解释。
6. 实验总结:对本次实验的总结和评价,包括实验的收获、不足之处以及改进的建议。
以下是一个简单的数据结构实验报告的范例:实验目的:本次实验的目的是熟悉链表数据结构的概念和基本操作,包括链表的插入、删除和查找等。
原理介绍:链表是一种常用的数据结构,它由一组节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。
链表中的节点可以通过指针相互连接,从而形成一串有序的数据。
链表不同于数组,它的插入和删除操作十分高效,但查找效率较低。
实验内容:本次实验要求实现一个链表,并在链表中实现插入、删除和查找操作。
首先,定义一个节点结构,并实现节点的插入和删除操作;其次,实现查找操作,并根据查找结果返回节点位置或者相关信息。
实验结果:经过实验,我们得到了以下结果:在链表中插入节点的时间复杂度为O(1),删除节点的时间复杂度为O(1),查找节点的时间复杂度为O(n)。
分析讨论:从结果可以看出,链表的插入和删除操作的效率较高,但查找操作的效率较低。
这是因为链表中的节点没有连续的存储空间,所以需要遍历整个链表才能找到目标节点。
如果需要频繁进行查找操作,可以考虑使用其他数据结构,如二叉搜索树或哈希表。
实验总结:通过本次实验,我们深入了解了链表数据结构的原理和基本操作,并实现了一个简单的链表。
在以后的学习和实践中,我们可以根据实际需求选择合适的数据结构,以提高程序的效率和性能。
此外,本次实验也让我们更加熟悉了编程的过程和技巧。
数据结构实验三实验报告

数据结构实验三实验报告数据结构实验三实验报告一、实验目的本次实验的目的是通过实践掌握树的基本操作和应用。
具体来说,我们需要实现一个树的数据结构,并对其进行插入、删除、查找等操作,同时还需要实现树的遍历算法,包括先序、中序和后序遍历。
二、实验原理树是一种非线性的数据结构,由结点和边组成。
树的每个结点都可以有多个子结点,但是每个结点只有一个父结点,除了根结点外。
树的基本操作包括插入、删除和查找。
在本次实验中,我们采用二叉树作为实现树的数据结构。
二叉树是一种特殊的树,每个结点最多只有两个子结点。
根据二叉树的特点,我们可以使用递归的方式实现树的插入、删除和查找操作。
三、实验过程1. 实现树的数据结构首先,我们需要定义树的结点类,包括结点值、左子结点和右子结点。
然后,我们可以定义树的类,包括根结点和相应的操作方法,如插入、删除和查找。
2. 实现插入操作插入操作是将一个新的结点添加到树中的过程。
我们可以通过递归的方式实现插入操作。
具体来说,如果要插入的值小于当前结点的值,则将其插入到左子树中;如果要插入的值大于当前结点的值,则将其插入到右子树中。
如果当前结点为空,则将新的结点作为当前结点。
3. 实现删除操作删除操作是将指定的结点从树中移除的过程。
我们同样可以通过递归的方式实现删除操作。
具体来说,如果要删除的值小于当前结点的值,则在左子树中继续查找;如果要删除的值大于当前结点的值,则在右子树中继续查找。
如果要删除的值等于当前结点的值,则有三种情况:- 当前结点没有子结点:直接将当前结点置为空。
- 当前结点只有一个子结点:将当前结点的子结点替代当前结点。
- 当前结点有两个子结点:找到当前结点右子树中的最小值,将其替代当前结点,并在右子树中删除该最小值。
4. 实现查找操作查找操作是在树中寻找指定值的过程。
同样可以通过递归的方式实现查找操作。
具体来说,如果要查找的值小于当前结点的值,则在左子树中继续查找;如果要查找的值大于当前结点的值,则在右子树中继续查找。
数据结构实验报告2篇

数据结构实验报告数据结构实验报告精选2篇(一)实验目的:1. 熟悉数据结构的基本概念和基本操作;2. 掌握线性表、栈、队列、链表等经典数据结构的实现方法;3. 掌握数据结构在实际问题中的应用。
实验内容:本次实验主要包括以下几个部分:1. 线性表的实现方法,包括顺序表和链表,分别使用数组和链表来实现线性表的基本操作;2. 栈的实现方法,包括顺序栈和链式栈,分别使用数组和链表来实现栈的基本操作;3. 队列的实现方法,包括顺序队列和链式队列,分别使用数组和链表来实现队列的基本操作;4. 链表的实现方法,包括单链表、双链表和循环链表,分别使用指针链、双向链和循环链来实现链表的基本操作;5. 综合应用,使用各种数据结构来解决实际问题,例如使用栈来实现括号匹配、使用队列来实现马铃薯游戏等。
实验步骤及结果:1. 线性表的实现方法:a) 顺序表的基本操作:创建表、插入元素、删除元素、查找元素等;b) 链表的基本操作:插入节点、删除节点、查找节点等;c) 比较顺序表和链表的优缺点,分析适用场景。
结果:通过实验,确认了顺序表适用于频繁查找元素的情况,而链表适用于频繁插入和删除节点的情况。
2. 栈的实现方法:a) 顺序栈的基本操作:进栈、出栈、判空、判满等;b) 链式栈的基本操作:进栈、出栈、判空、判满等。
结果:通过实验,掌握了栈的基本操作,并了解了栈的特性和应用场景,例如括号匹配。
3. 队列的实现方法:a) 顺序队列的基本操作:入队、出队、判空、判满等;b) 链式队列的基本操作:入队、出队、判空、判满等。
结果:通过实验,掌握了队列的基本操作,并了解了队列的特性和应用场景,例如马铃薯游戏。
4. 链表的实现方法:a) 单链表的基本操作:插入节点、删除节点、查找节点等;b) 双链表的基本操作:插入节点、删除节点、查找节点等;c) 循环链表的基本操作:插入节点、删除节点、查找节点等。
结果:通过实验,掌握了链表的基本操作,并了解了链表的特性和应用场景。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 实验报告在做完实验以后写实验报告,是整个实验过程的一个重要环节。
报告的撰写过程实际是对整个实验的总结与回顾,有助加深对实验的理解,提高对实验的认识。
本章介绍如何撰写实验报告。
2.1如何撰写实验报告对于每一个实验中所要求解决的问题,都应该有规范详细的报告文档,本实验要求报告的规范如下:一、 问题描述1.实验题目:一般教材中会给出实验题目。
2.基本要求:实验的基本要求,一般也会在教材中给出。
3.测试数据:实验中要用到的测试数据,部分实验由教材提供。
二、 需求分析1.程序所能达到的基本可能。
2.输入的形式及输入值范围3.输出的形式4.测试数据要求三、 概要设计1.所用到得数据结构及其ADT2.主程序流程及其模块调用关系3.核心模块的算法伪码四、 详细设计1. 实现概要设计中的数据结构ADT2. 实现每个操作的伪码,重点语句加注释3. 主程序和其他模块的伪码4. 函数调用关系图五、 调试分析1.设计与调试过程中遇到的问题分析、体会2.主要算法的时间和空间复杂度分析六、 使用说明简要给出程序的运行和操作步骤。
七、 测试结果给出实验结果,包括输入和输出。
八、 附录带注释的源程序。
2.2实验报告样例一、 问题描述1.实验题目:利用有序链表表示正整数集合,实现集合的交、并和差运算。
2.基本要求:有用户输入两种整数分别作为两个集合元素,由程序计算它们的交、并和差,并输出结果。
3.测试数据:S1={3,5,6,9,12,27,35} S2={5,8,10,12,27,31,42,51,55,63}运行结果应为:S1∪S2={3,5,6,8,9,10,12,27,31,35,42,51,55,63}S1∩S2={5,12,27}S1-S2={3,6,9,35}二、 需求分析1.本程序用来求出任意两个正整数集合的交、并、差。
2.程序运行后显示提示信息,提示用户输入两组整数,程序需自动顾虑重复的整数和负数。
3. 用户输入完毕后,程序自动输出运算结果。
三、 概要设计为了实现上述功能,应以有序链表表示集合,因此需要有序表和集合两个抽象数据类型。
1. 有序表抽象数据类型定义:ADT OrderedList{数据对象:D={a i |a i ∈ElemType,i=1,2...,n,n ≥0}数据关系:R={<a i-1,a i >|a i-1,a i ∈D, a i-1≤a i ,i=2,...,n}基本操作:InitList(&L); //构造空线性表DestroyList(&L); //销毁线性表ClearList(&L); //将L 置空ListEmpty(L); //检查L 是否为空ListLength(L); //返回L 中元素个数GetElem(L,i,&e); //返回L 中第i 个元素赋予eLocatePos (L,e); //返回L 中e 的位置InsertElem(&L,e); //在L 中插入eDeleteElem(&L,i); //删除L 中第i 个元素ListTravers(L); //依次输出L 中元素。
}ADT OrderedList2. 集合的抽象数据类型定义: ADT set{ 数据对象:D={a i |a i ∈ElemType,且各不相同,i=1,2...,n,n ≥0}数据关系:R=φ基本操作:CreateNullSet(&T );DestroySet(&T );AddElem(&T ,e);DelElem(&T ,e);Union(&T ,S1,S2);Intersection(&T ,S1,S2);Difference(&T ,S1,S2);PrintSet(T );} ADT set3.本程序保护模块:主程序模块集合单元模块:实现集合的抽象数据类型有序表单元模块:实现有序表抽象数据类型调用关系:四、 详细设计1.元素类型、结点类型和结点指针类型: typedef int ElemType;typedef struct NodeType{ElemType data;NodeType *next;}NodeType,*LinkType;2.有序表类型:typedef struct {LinkType head,tail;int size;int curpos;LinkType current;}OrderedList;//部分基本操作的伪码实现status InitList(OrderedList &L){L.head=new Nodetype;if(!L.head)retuen false;L.head->data=0;L.head->next=NULL;L.current=L.tail=L.head;L.curpos=L.size=0 ;return true ;}//... ...(其它略)3.集合类Set的实现,利用有序链表来实现: typedef OrderedList OrderedSet;status CreateNullSet(OrderedSet &T) {if(InitList(T)) return true;else return false;}// ... ... (其它略)4.主函数的伪码:void main(){cout<<endl<<”请输入 S1:”;CreateSet(S1);cout<<endl<<”请输入 S2:”;CreateSet(S2);PrintSet(S1);PrintSet(S2);Union(T1,S1,S2);cout<<endl<<”Union:”;PrintSet(T1);Intersection(T2,S1,S2);cout<<endl<<”Intersection:”;PrintSet(T2);Difference(T3,S1,S2);cout<<endl<<” Difference:”;PrintSet(T3);Destroy(T1);Destroy(T2);Destroy(T3);Destroy(S1);Destroy(S2);}5.函数调用关系(略)五、 调试分析1.程序中将纸张的操作封装在链表的类型中,在集合的类型模块中,只需要引用链表的操作实现相应的集合运算即可,从而使集合模块的调试比较方便。
2.算法的时空分析:(1) 由于有序表采用带头结点的有序链表,并增设尾指针和表的长度两个标示,各种操作的算法时间复杂度比较合理,LocatePos、GetElem和DestroyList等操作的时间复杂度都是O(n),其中n是链表的长度。
(2) 构造有序集算法CreateSet读入n个元素,需要逐个用LocatePos判断输入元素是不是有重复且确定插入位置后,调用InsertElem插入到有序链表,所以复杂度也是O(n)。
求并算法Union将两个集合共m+n的元素不重复地依次使用InsertElem插入到结果集中,由于插入式按元素值自小到大次序进行,时间复杂度为O(m+n)。
类似地,求交算法InterSection和求差算法Difference的时间复杂度也是O(m+n)。
消耗算法DestroySet和输出PrintSet都是O(n)。
所有算法的空间复杂度都是O(1)。
六、 使用说明程序运行后用户根据提示输入集合S1、S2的元素,元素间以空格或回车分隔,输入-1表示输入结束。
程序将按照集合内元素从小到大的顺序打印出S1和S2,以及他们的并、交和差。
七、 调试结果使用两组数据进行了测试:1.请输入S1:35 12 9 12 6 6 -12 3 5 9 9 35 27 -1请输入S2:31 27 5 10 8 -20 55 12 63 42 51 -1{3,5,6,9,12,27,35}{5,8,10,12,27,31,42,51,55,63}Union:{3,5,6,8,9,10,12,27,31,35,42,51,55,63} Intersection:{5,12,27}Diffrence:{3,6,9,35}2.请输入S1:43 5 2 46 -1请输入S2:45 66 -1{2,5,43,46}{45,46}Union:{2,5,43,45,46,66}Intersection:{}Diffrence:{2,5,43,46}八、 附录源程序文件清单:commmon.hoderList.horderSet.hset.cpp。