- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于顺序表的集合并交叉讲述
数 据 结 构 课 程 设 计
基于顺序表的集合的并、交、差运算
学 生 姓 名:
学 号:
指 导 教 师:
完 成 日 期: 2015.12.24
目 录
1 设计任务书 1
1.1 题目与要求 1
1.2 知识点 1
1.3 输入输出分析 1
1.4 测试数据分析 1
2 概要设计 1
2.1 结构体类型及函数声明 1
2.2 主程序流程 2
2.3 模块流程说明 3
3 详细设计 5
3.1 数据类型实现 5
;3.2 程序代码 5
4 调试分析 13
4.1 问题分析与回顾 13
4.2 经验和体会 13
5 测试结果 14
参考文献 16
1 设计任务书
1.1 题目与要求
题目:基于顺序表的集合的并、交、差运算:
(1)、利用顺序表存放集合的元素。顺序表需要有自动扩充空间的功能。顺序表的基本操作(插入、删除、查找等)要用函数实现。
(2)、在顺序表基础上实现集合的并、交、差。
(3)、要求有合理的输入输出。
(4)、界面要尽可能美观,要方便操作。
(5)、该题目最高成绩为“良好”。
1.2 知识点
顺序表的初始化、建立、插入、删除等操作,并基于线性表进行集合的并交叉运算。
1.3 输入输出分析
(1)在顺序表的插入删除操作函数中,通过get()函数向函数中输入数据,这样可以不用事先规定顺序表的长度。
(2)在集合的并交叉操作函数中,将数组作为集合的载体构建顺序表,并通过交并差函数输出数据。
1.4 测试数据分析
在插入删除操作中,如果插入删除位置出错,则会提示用户输入错误,并返回系统error,本系统只实现数字集合的交并差运算,暂不实现其他类型元素的运算。
2 概要设计
2.1 结构体类型及函数声明
(1)结构体
ElemType *elem; 定义ElemType类型的储存空间基址;
int length; 定义顺序表的当前长度;
int listsize; 定义当前分配的储存容量;
(2)函数声明
Status ChaJi(SqList l1,SqList l2) 求差集函数;
Status CreatSqList(SqList l,ElemType a[],int n) 创建顺序表函数;
Status equal(ElemType e1,ElemType e2) 比较函数;
Status GetElem(SqList L,int i,ElemType e) 返回数据值函数;
Status InitList(SqList l) 初始化函数;
Status JiaoJi(SqList l1,SqList l2, SqList l3) 求交集函数;
Status ListDelete(SqList L,int i,ElemType e) 删除函数;
void ListDisp_Sq(SqList L) 显示函数;
Status ListInsert_Sq(SqList L,int i, ElemType e) 插入函数;
int ListLength(SqList l) 求表长函数;
int LocateElem_Sq(SqList L, ElemType e, Status (*compare)(ElemType,ElemType)) 返回比较值函数;
int main() 主函数;
void Outputlist(SqList L) 输出函数;
void Union(SqList La,SqList Lb) 求并集函数;
2.2 主程序流程
(1)主程序调用模块图
主程序利用switch()语句实现各个模块的调用,主函数调用如图1所示。
图1 主程序调用模块图
2.3 模块流程说明
主函数对各主要模块进行调用,各个主要模块又分别调用其他子模块。下面用简要流程图对各主要模块进行说明。
(1) 插入模块
如图2所示,为插入模块。先通过键盘读取选择信息,再调用insert()函数,用户输入信息无误,调用inser()函数插入。
图2 插入模块
(2)删除模块
如图3所示为删除流程图。录入删除信息,判断合法则删除,否则结束。
图3删除模块
(3)集合交并差模块
如图4为集合交并差流程图。
图4集合交并差模块
3 详细设计
3.1 数据类型实现
顺序表结构体
typedef struct{ ElemType *elem;
int l
文档评论(0)