1、第 1 页 共 21 页 1 1 引言引言 1 11 1 数据结构简介数据结构简介 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种 特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或 者存储效率。数据结构往往同高效的检索算法和索引技术有关1。 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据 元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存 储结构是数据结构的实现形式,是其在计算机内的表示2,3;此外讨论一个数据 结构必须同时讨论在该类数据上执行的运算才有意义。 在许多类型的程序的设计中,数据结构的
2、选择是一个基本的设计考虑因素。许 多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖 于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。 有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种 情况,选择合适的数据结构都是非常重要的1,4。 选择了数据结构, 算法也随之确定,是数据而不是算法是系统构造的关键因素。 这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计 语言就是其中之一。 1 12 2 课程设计目的课程设计目的 本次课程设计目的是让同学更加熟悉一门计算机重要的课程数据结构。 数据结构是 计算机科学
3、专业的一门考研科目,又直接涉及计算机的编程语言以及软件设计,因此数 据结构这门课程的重要性可见一斑2,在大二下学期开设了这门课是为了让广大的同 学更好的学习设计软件的思想甚至为更深层次的算法打好基础,运用不同的数据结构以 及各种算法解决实际问题,并且在学习的途中还可以达到熟练编程语言以及计算机存储 结构的目的,对以后的软件工程、编译原理、算法学习都是一个很好的铺垫4,所以 本次课程设计的意义显得尤为重要。 1 13 3 课程设计内容课程设计内容 此次课程设计的题目是运用指针数组解决矩阵多项式的加减法。 矩阵多项式的运算 一直以来是数据结构的一个经典问题,解决此问题需要充分的利用到指针、结构体、
4、链 第 2 页 共 21 页 表的知识,然后加入了矩阵多项式这个限制把难度提升了,解决矩阵的幂需要利用到数 组的这一概念。 而且在做多项式的加减法时又必须充分考虑到符号问题、系数问题、指数问题的特 殊情况,在编写程序同时需要多方面考量设计是否合理,输出是否美观界面是否友好, 解决此问题的同时又是对自己的程序语言以及数据结构的一次学习。 本次课程设计共分为五章。 第一章:引言部分,1.1 主要是介绍数据结构总体的概念,重要性,1.2 是简介此 次课程设计的目的,1.3 主要是提出此次课程设计的内容。 第二章:开发工具简介,主要是针对我所使用的开发工具 Visual Studio 2010,做 一
5、个简单的介绍,以及最基础的工程创建编译,让读者对此款工具有个大致的了解。 第三章:系统分析与设计,3.1 主要是针对该题目进行需求分析,提及所需要的理 论知识,数据结构以及需要输出的结果 3.2 是概要设计,主要是简略的介绍了各功能函 数的作用给出系统的总框架图。 第四章:算法与数据结构,4.1 主要介绍算法思想,以及如何利用该算法解决本次 课程设计内容。4.2 节介绍关键算法给出核心代码的解析和数据流程图。 第五章:系统分析及测试,给出具体测试示例及理论结果,而后比对运行结果,由此 说明系统的可靠、正确性。 第 3 页 共 21 页 2 2 开发工具简介开发工具简介 本课程设计采用了微软最新
6、的开发工具,功能极其强大的 Visual Studio 2010, 无论是从功能上还是界面上都完胜很多教材使用的 VC6,或者是 VS 前几个版本。所 以本人也把各个工程投入这个更新的平台上来,的确是提高了工作的效率。 Visual Studio 是微软公司推出的开发环境。是目前最流行的 Windows 平台应用 程序开发环境。 目前已正式发布的是 9.0 版本, 也就是 Visual Studio 2008, 而在 2008 年 12 月份,一个振奋人心的信息传来:微软公布了下一代开发工具和平台“Visual Studio Team System 2010”以及.NET Framework 4.0 的相关信息,并透露他们将在 2009 年底或者 2010 年正式发布。于是 Visual Studio2010 正式版在今年与我们见面了,我 是一个喜欢新鲜事物的人,于是 Visual Studio2010 便出现在我的机器上。 Visual Studio 2010 与 2008 版本的对比:自从微软于 1998 年发布 Visual Stud