logo资料库

东华大学 数据结构课程设计 代码.doc

第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
资料共44页,剩余部分请下载后查看
1 课程设计目的
2 课程设计内容和要求
3 任务完成情况
4 设计报告
4.1 顺序表
4.1.1 设计目的
4.1.2 设计内容及要求
4.1.3 需求分析
4.1.4 概要设计
4.1.5 详细代码
4.1.6 使用说明
4.1.7 测试结果与分析
4.1.8 参考文献
4.2链表的应用
4.2.1 设计目的
4.2.2 设计内容及要求
4.2.3 需求分析
4.2.4 概要设计
4.2.5 详细代码
4.2.6 使用说明
4.2.7 测试结果与分析
4.2.8 参考文献
4.3 树与二叉树
4.3.1 设计目的
4.3.2 设计内容及要求
4.3.3 需求分析
4.3.4 概要设计
4.3.5 详细代码
4.3.6 使用说明
4.3.7 测试结果与分析
4.3.8 参考文献
5 体会与感想
附录:
设计一的代码
设计二的代码
设计三的代码
数据结构课程设计 ----个人设计报告 专 班 姓 学 业: 级: 名: 号: 指导教师: 日 期: 1
目录 1 课程设计目的 ....................................... 3 2 课程设计内容和要求 ................................. 3 3 任务完成情况 ....................................... 3 4 设计报告 ........................................... 4 4.1 顺序表 .................................................................................................................................. 4 4.1.1 设计目的 .................................................................................................................. 4 4.1.2 设计内容及要求......................................................................................................4 4.1.3 需求分析 .................................................................................................................. 4 4.1.4 概要设计 .................................................................................................................. 5 4.1.5 详细代码 .................................................................................................................. 6 4.1.6 使用说明 .................................................................................................................. 6 4.1.7 测试结果与分析......................................................................................................6 4.1.8 参考文献 .................................................................................................................. 8 4.2 链表 ...................................................................................................................................... 9 4.2.1 设计目的 .................................................................................................................. 9 4.2.2 设计内容及要求......................................................................................................9 4.2.3 需求分析 .................................................................................................................. 9 4.2.4 概要设计 .................................................................................................................. 9 4.2.5 详细代码 ................................................................................................................ 12 4.2.6 使用说明 ................................................................................................................ 12 4.2.7 测试结果与分析....................................................................................................12 4.2.8 参考文献 ................................................................................................................ 14 4.3 树和二叉树 ........................................................................................................................ 15 4.3.1 设计目的 ................................................................................................................ 15 4.3.2 设计内容及要求....................................................................................................15 4.3.3 需求分析 ................................................................................................................ 15 4.3.5 详细代码 ................................................................................................................ 17 4.3.6 使用说明 ................................................................................................................ 17 4.3.7 测试结果与分析....................................................................................................18 4.3.8 参考文献 ................................................................................................................ 20 5 体会与感想 ........................................ 21 附录: .............................................. 22 设计一(顺序表)的代码......................................................................................................22 设计二(链表)的代码 ..........................................................................................................30 设计三(树和二叉树)的代码 ..............................................................................................38 2
1 课程设计目的 1、 学习获取知识的方法; 2、 提高发现问题、分析问题和解决实际问题的能力; 3、 加强创新意识和创新精神; 4、 加强团队的分工与合作; 5、 掌握面向实际背景思考问题的方法。 2 课程设计内容和要求 内容: 前言 第一章 顺序表 第二章 链表 第三章 树和二叉树 个人基本任务: 完成第1,2,3章,其中选做题可不做。 3 任务完成情况 任务完成情况介绍,如表 3-1. 表 3-1 任务完成情况表 完成任务名称 顺序表 链表 树和二叉树 3
4 设计报告 4.1 顺序表 4.1.1 设计目的 熟悉顺序表的应用 4.1.2 设计内容及要求 本程序用 C 语言编写,完成以下功能: 1)实现二路归并排序算法。 2)实现快速排序算法。 3)实现堆排序算法。 4)实现冒泡排序和选择排序算法 5)删除线性表中所有值为 item 的数据元素 6)五种排序方法性能测试 4.1.3 需求分析 本程序用 C 编写,完成 5 种排序和性能测试,删除线性表中所有值为 item 的 数据元素等功能,并且需要一个菜单让用户自主选择执行的功能。 ① 输入的形式和输入值的范围: 输入的元素是整形,输入值的范围是 0-9,输入-1 结束。 2 输出的形式: 在每次选择菜单后,输出相应的结果,并且询问下次操作的项目。 3 程序所能达到的功能: 完成 5 种排序和性能测试,删除线性表中所有值为 item 的数据元素。每次操作结 束后,都会有菜单方便用户进行下一步的操作。 4 测试数据: A.菜单显示为: 请输入您要测试的项目: 4
1.顺序存储的线性表 5 种排序算法 » 选择 1 » 显示 请输入元素个数 » 输入 整数 » 输出 5 种排序方法排序后的元素 2.删除线性表中所有值为 item 的数据元素 » 选择 2 » 显示 请输入元素个数 » 输入 整数 » 显示 依次输入元素,按空格分开 » 输入 整数 » 显示 请输入 item 的值(整数) » 输入 整数 » 输出 剩下的元素 3.性能测试 » 选择 3 » 输出 5 种排序(有序/随机元素)的时间 0.退出管理系统 » 选择 0 » 退出当前程序 4.1.4 概要设计 1) 为了实现上述程序功能,需要定义顺序表的抽象数据类型: typedef struct list { int key;//关键字项 }RedType;//记录类型 typedef struct { RedType r[MAXSIZE];//r[0]闲置或用作哨兵单元 int length; //顺序表长度,参加排序元素的实际个数 }SqList;//顺序表类型 2) 本程序包含 16 个函数: 1 2 void void InitialRandom(SqList *L)ContactList Initial(SqList *L) 5
3 4 5 6 7 8 void Merge(RedType SR[], RedType TR[],int i,int m,int n) void Msort(RedType SR[] ,RedType TR1[] ,int s ,int t) void Mergesort(SqList *L ) void choice(SqList *L) void bubble(SqList *L) void quicksort(SqList *L,int start,int end) void Heapsort(SqList *L) 9 10 void HeapAdjust(SqList *L,int s,int m) 11 void out(SqList *L) 12 int Delete(SqList *L, int item) 13 void OrderInitial(SqList *L) 14 void 15 void Performance() 16 int main() InOrderInitial(SqList *L) 4.1.5 详细代码 见附录一 4.1.6 使用说明 程序执行后出现如图 4.1-2 的菜单: 菜单共有四个选项,选择不同的选项会出现相应的提示进行下一步操作: 图 4.1-2 菜单 选择 1:顺序存储的线性表 5 种排序算法 选择 2:删除线性表中所有值为 item 的数据元素 选择 3:性能测试 选择 0:退出 4.1.7 测试结果与分析 1. 顺序存储的线性表 5 种排序算法,如图 4.1-3: 6
图 4.1-3 实验结果:生成随机数,用 5 种方法从小到大排序 2. 删除线性表中所有值为 item 的数据元素,如图 4.1-4: 实验结果:分三类讨论,分别是删除第一个,最后一个,当中元素 3. 性能测试,如图 4.1-5: 图 4.1-4 删除元素 7
如图 4.1-5 一万元素性能测试 如图 4.1-6 五十万元素性能测试 实验结果:分别生成有序和无需的元素,用 5 种排序方法分别排序,并输出时间 注意:VS6.0 中 10 万元素以上就会溢出,特别是快速排序只能在 1 万元素时实现,否则 栈会溢出,故在 50 万测试时把快速排序的函数用“//”注释掉,因此时间为 0。 4. 输入 0 退出 4.1.8 参考文献 [1] 严蔚敏等著, 数据结构(C 语言版), 清华大学出版社 [2] 高一凡著, 数据结构算法解析, 清华大学出版社 8
分享到:
收藏