- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于顺序表的集合并交叉解析
数据结构课程设计基于顺序表的集合的并、交、差运算学生姓名:学号:指导教师:完成日期:2015.12.24目 录1 设计任务书11.1 题目与要求11.2 知识点11.3 输入输出分析11.4 测试数据分析12 概要设计12.1 结构体类型及函数声明12.2 主程序流程22.3 模块流程说明33 详细设计53.1 数据类型实现5;3.2 程序代码54 调试分析134.1 问题分析与回顾134.2 经验和体会135 测试结果14参考文献161 设计任务书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 length; int listsize;}SqList;3.2 程序代码#includestring.h#includestdio.h#includemalloc.h#includestdlib.h#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define INFEASIBLE -1#define OVERFLOW -2#define NULL 0#define LIST_INIT_SIZE 100#define LISTINCREMENT
文档评论(0)