1、数据结构课程设计报告数据结构课程设计报告 1 数据结构课程设计报告数据结构课程设计报告 (2011-2012 学年 第二学期) 题题 目:集合交、并、差、对称差运算目:集合交、并、差、对称差运算 学学 号:号: 姓姓 名:名: 指导教师:指导教师: 信息科学与工程系信息科学与工程系 数据结构课程设计报告数据结构课程设计报告 2 1设计内容、任务及具体要求设计内容、任务及具体要求 1.1 设计内容设计内容 编写一个程序,实现集合(同一集合中可以存在重复的元素,函数将自动过滤) 的并、交、差和对称差。 1.2 设计任务及具体设计任务及具体要求要求 1、用顺序表表示集合,在建立顺序表时,自动清除同一
2、集合中的相同元素,并根据长度定位元素位置; 2、集合的元素限定为字母; 3、要求实现的算法: 1)两个集合的并运算 2)两个集合的交运算 3)两个集合的差运算 4)两个集合的对称差运算 4、运行界面要人性化,便于使用,提示清楚,操作简单。 问题补充:问题补充: 要求数据是无序的,不能顺序表示,通过函数(插入、删除)完成集合间的运算。 2概要设计概要设计 2.1 该系统的功该系统的功能简介能简介 建立顺序表,通过顺序表进行集合间并、交、差、对称差的运算。使用者只需根据程序提示,进行必要步 骤的输入和选择,就能实现集合间的简单运算。 2.2 总体程序框图总体程序框图 2.3 各个模块之间的主要关系
3、 m a i n( ) 函 数 输入函数 初 始 化 创 建 链 表 菜 单 输 出 函 数 输入函数 输入函数 输入函数 数据结构课程设计报告数据结构课程设计报告 3 3系统功能模块的具体设计系统功能模块的具体设计 3.1 各个模块的程序流程图及运行界面各个模块的程序流程图及运行界面 1.初始化顺序表模块初始化顺序表模块 0 1 1 2.求长模块求长模块 主函数 对 称 差 模 块 交 集 模 块 差 集 模 块 并 集 模 块 初始化 模块 输出 模块 创建链表 模块 菜单 模块 求长 模块 插入 模块 求 长 模 块 取 元 素 模 块 差 集 模 块 并 集 模 块 删 除 模 块 插
4、 入 模 块 交 集 模 块 定 位 模 块 插 入 模 块 定 位 模 块 取 元 素 模 块 求 长 模 块 取 元 素 模 块 删 除 模 块 初 始 化 模 块 取 元 素 模 块 求 长 模 块 插 入 模 块 求 长 模 块 初 始 化 模 块 Over low l.length=0; l.listsize=LIST_INIT_SIZE; l.elem return(l.length) 开 始 开 始 返 回 o k 结 束 结 束 申 请 空 间 数据结构课程设计报告数据结构课程设计报告 4 3. 插入模块插入模块 1 1 1 0 0 0 4.创建顺序表创建顺序表 1 1 0 5
5、. 取元素取元素 1 0 6. 比较模块比较模块 1 0 开 始 是 否 超 长 申 请 内 存 内 存 足 够 开 辟 空 间 P = q *(p+1)=*p; -p; returnOK *q=e; +L.length; 开 始 return OK 求 长 i = n a =a i e2 return OK return ERROR; 结 束 结束 结束 数据结构课程设计报告数据结构课程设计报告 5 7. 定位模块定位模块 0 0 1 1 8. 删除模块删除模块 1 1 0 0 9.并集模块并集模块 0 1 1 0 10.交集模块交集模块 0 1 1 1 0 e1 e 22 开 始 e 结 束 大 于 长 *p=l.elem return return ERROR return OK; 大 于 长 P q *p= e=*p *p=*(p+1); +p 开 始 结 束 -length ; return OK return ERROR 开 始 开 始 结 束 开 始 定位 元素 相等 i=L.listsize) ElemType*newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType); if(!newb