数据结构与算法课程论文_第1页
数据结构与算法课程论文_第2页
数据结构与算法课程论文_第3页
数据结构与算法课程论文_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构与算法课程小论文10计本一班王晓龙1004011026一. 内容概要:如何合理地组织数据、高效地处理数据是扩大计算机领域、提高软件效率的关键。 在软件开发过程中要求“高效地”组织数据和设计“好的”算法,并使算法用程序来实 现,通过调试而成为软件,必须具备数据结构领域和算法设计领域的专门知识。本课程主要学习在软件开发中涉及到的各种常用数据结构及其常用的算法,在此基础上,学习如何利用数据结构和算法解决一些基本的应用问题。通过数据结构的逻辑结构、存储结构、基本算法和相关应用问题来介绍其基本知识和应用知识。二. 关键字:数据结构:数据的逻辑结构、数据的存储结构、基本算法;算法分析三. 课程主要

2、内容和基本原理:A.数据结构:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种 特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或 者存储效率。数据结构往往同高效的检索算法和索引技术有关。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因 素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量 都严重的依赖于是否选择了最优的数据结构。 许多时候,确定了数据结构后, 算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数 据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。(1).分类:数据元素相

3、互之间的关系称为结构。有四类基本结构:集合、线性结构、 树形结构、图状结构(网状结构)。树形结构和图形结构全称为非线性结构。 集合结构中的数据元素除了同属于一种类型外,别无其它关系。线性结构中 元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。 在图形结构中每个结点的前驱结点数和后续结点数可以任意多个。数据结构在计算机中的表示 (映像)称为数据的物理 (存储)结构。 它包括数据元素的表示和关系的表示。 数据元素之间的关系有两种不同的表 示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存 储结构和链式存储结构。顺序存储方法:它是把逻辑上相

4、邻的结点存储在物 理位置相邻的存储单元里, 结点间的逻辑关系由存储单元的邻接关系来体现, 由此得到的存储表示称为顺序存储结构。 顺序存储结构是一种最基本的存储 表示方法,通常借助于程序设计语言中的数组来实现。链接存储方法:它不 要求逻辑上相邻的结点在物理位置上亦相邻, 结点间的逻辑关系是由附加的 指针字段表示的。由此得到的存储表示称为链式存储结构,链式存储结构通 常借助于程序设计语言中的指针类型来实现。索引存储方法:除建立存储结 点信息外,还建立附加的索引表来标识结点的地址。散列存储方法:就是根 据结点的关键字直接计算出该结点的存储地址。数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可

5、以 把数据结构分成线性结构和非线性结构。 线性结构的顺序存储结构是一种随 机存取的存储结构,线性表的链式存储结构是一种顺序存取的存储结构。线 性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。 逻辑结构与数据元素本身的形式、内容、相对位置、所含结点个数都无关。(2). 四类基本结构:集合结构。该结构的数据元素间的关系是“属于同一个集合” 。线性结构。该结构的数据元素之间存在着一对一的关系。树型结构。该结构的数据元素之间存在着一对多的关系。图形结构。该结构的数据元素之间存在着多对多的关系,也称网状结 构。 从上面所介绍的数据结构的概念中可以知道,一个数据结构有两个要 素。一个是数

6、据元素的集合,另一个是关系的集合。在形式上,数据结构通 常可以采用一个二元组来表示。3).常用的数据结构:a.数组: 在程序设计中, 为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。 在 C 语言中, 数组属于构造数据类型。 一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。 因此按数组元素的类型不同, 数组又可分为数值数组、 字符数组、 指针数组、 结构数组 等各种类别。b.栈:是只能在某一端插入和删除的特殊线性表。 它按照先进后出的原则存储数据, 先进 入的数据被压入栈底, 最后的数据在栈顶, 需要读数据的时

7、候从栈顶开始弹出数据 (最 后一个数据被第一个读出来) 。c队列:一种特殊的线性表, 它只允许在表的前端 ( front )进行删除操作, 而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队 列中没有元素时,称为空队列。d. 链表:是一种物理存储单元上非连续、 非顺序的存储结构, 数据元素的逻辑顺序是通过链 表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成, 结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域, 另一个是存储下一个结点地址的指针域。e. 树:是包含n (n>0)个结点的有穷集合 K

8、,且在K中定义了一个关系 N , N满足以下条 件:(1)有且仅有一个结点 k0,他对于关系 N来说没有前驱,称 K0为树的根结点。 简称为根(root )。 ( 2 )除K0外,k中的每个结点,对于关系 N来说有且仅有一个 前驱。(3) K中各结点,对关系 N来说可以有 m个后继(m>=0)。f.图:图是由结点的有穷集合 V 和边的集合 E 组成。其中,为了与树形结构加以区别, 在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边, 就表示这两个顶点具有相邻关系。g堆: 在计算机科学中, 堆是一种特殊的树形数据结构, 每个结点都有一个值。 通常我们所说的堆的数据结

9、构,是指二叉堆。堆的特点是根结点的值最小(或最大) ,且根结点 的两个子树也是一个堆。h.散列表:若结构中存在关键字和 K相等的记录,则必定在 f(K)的存储位置上。由此,不需比 较便可直接取得所查记录。称这个对应关系 f 为散列函数 (Hash function) ,按这个思想 建立的表为散列表。B.算法分析:算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。 算法是解题的步骤, 可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中, 算法要用计算机算法语言描述, 算法代表用计算机解一类问题的精确、 有效的方法。 算法+数据结构 =程序, 求解一个给定的可计算或可解的问题, 不同的人可以编写出不同的程序, 来解决同一个问题, 这里存在两个问题: 一是与计算方法密切相关的算法问题; 二是程序设计的技术问题。 算法 和程序之间存在密切的关系。 分析算法可以预测这一算法适合在什么样的环境中有效地运行, 对解决同一问题的不同算法的有效性作出比较。四. 心得体会:在做完这次课程论文后, 让我再次加深了对数据结构与算法的理解,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论