数据结构论文

  • 格式:rtf
  • 大小:143.05 KB
  • 文档页数:16

论文题目: 数据结构

院(部)名 称:

学 生 姓 名:

专 业:

指导教师姓名:

论文提交时间:

学位授予时间:

论文题目:数据结构

前 言

数据结构与算法这门课程中,基础性实验设计十分重要。虽然有许许多多

的关于数据结构与算法的书籍,但这些书籍基本上都是着重理论讲解,很少对课

程中所涉及的实验进行单独的研究与开发。而本论文通过单独及全面的强化课程

的核心实验研究,进一步利用C语言进行编程和调试程序,能够利用C语言编写

较复杂的程序,加深对教学内容的理解,验证所学的算法和数据结构,培养了设

计数据结构的能力和根据数据结构设计算法的能力,掌握了非数值问题的数据结

构和算法的设计方法,通过对具体问题的分析、设计和实现,培养了软件开发所

需要的实践能力。

什么是数据结构;

《数据结构》作为计算机专业的一门专业基础课,其主要内容包括将现实世

界转化为在计算机世界中的抽象的数据描述,数据在计算机中的组织以及不同数

据类型的基本操作实现等,是相对比较难于理解和掌握的课程。它不仅要有计算

机方面的高级语言、计算机基础和计算机组成原理等软硬件基础知识,还需要有

一定的如离散数学等数学理论。

这门课程也是联系一般基础课和专业课的“桥梁”,它既是程序设计的入门课

程,也是诸如操作系统、编译原理、计算机网络以及数据库原理等后续课程的重

要的基础课程,它不仅是构筑这些课程体系与知识结构的核心课程之一,同时对奠

定学生计算机专业的基础具有重要意义

从多年对计算机专业的学生跟踪情况看,数据结构课程掌握的程度与学生

对学习后续课程的积极性密切相关,甚至影响到对整个专业知识的掌握。

对毕业学生工作情况的跟踪调查看,工作中的程序设计能力也需要有数据结

构的相关知识。一般来说,具有较好数据结构基础知识的学生,在工作过程中适应

工作变动、开辟新的研究阵地的能力较强。

从而能较好地紧跟信息技术的高速发展。

在计算机当中数据结构是计算机的基础但是也是很重要的一门专业课,学好

并了解其中的知识对今后的社会和经济发展起到很好的促进作用。

数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映

一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什

么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据

结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机

内部的存储安排。数据结构是数据存在的形式。 数据结构是信息的一种组织方

式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组

算法集合可以对数据结构中的数据进行某种操作。数据结构课程的主要目的是介

绍一些常用的数据结构,阐明数据结构内在的逻辑关系,讨论它们在计算机中的

存储表示,并结合各种数据结构,讨论对它们实行的各种运算的实现算法。很多

算法实际上是对某种数据结构施行的一种变换,研究算法也就是研究在实施变换

过程中数据结构的动态性质。

数据结构,作为计算机学科的基础性专业课程,其在计算机科学中的及其

重要,课程学习的好坏,直接关系到学员后期计算机水平的高低。而这门课程一

直因为过于抽象,难以理解,而让人望而止步。如果能够把这门抽象的课程变得

具体而生动,必将提高学习人员兴趣,增加其积极性和主动性,也有利于人员的

对此课程的学习。

基于这些目的,我们开发了这个数据结构算法演示系统,数据结构是我们

所做的系统的主要理论基础,我们完成了线性表、堆栈、队列、树、图几个主要

结构,在学习数据结构这门课程的时候,我们了解了这些结构的算法,当时也做

过一些相关的程序,在此基础之上,我运用c++ builder开发工具,把这些算法

演示出来。

数据结构算法演示系统可以演示线性表、堆栈、队列、树、图等几个基础

结构的算法,辅助一些算法说明,让使用者更好地掌握算法,在帮助中把演示的

具体过程和操作做详细的介绍。

数据结构与算法设计的关系;

大多数学计算机的人都学过数据结构和算法设计两门课程,这两门课程

既有相似之处又有不同之处,学习好这两门课程对编程思想和编程能力都有很大

的帮助。首先,我们来看看这两门课程究竟是研究什么的。

数据结构的研究内容

计算机是一门研究用计算机进行信息表示和处理的科学,这就需要我们能够

有效的表示信息,处理信息。随着计算机的普及,信息量的增加,信息范围的拓

宽,使许多系统程序和应用程序的规模很大,结构又相当复杂,因此,为了编写

出一个“好”的程序,必须分析待处理的对象的特征及各对象之间存在的关系,

这就是数据结构这门课所要研究的问题。计算机解决一个具体问题时,大致需要

经过下列几个步骤:首先要从具体问题中抽象出一个适当的数学模型,然后设计

一个解此数学模型的算法(Algorithm),最后编出程序、进行测试、调整直至得

到最终解答。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这

些操作对象之间含有的关系,然后用数学的语言加以描述。计算机算法与数据的

结构密切相关,算法无不依附于具体的数据结构,数据结构直接关系到算法的选

择和效率。

数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数

据的各种操作。因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存

储结构;对数据的操作(或算法)。通常,算法的设计取决于数据的逻辑结构,

算法的实现取决于数据的物理存储结构。

总而言之,数据结构是通过对数据的抽象与研究,帮助我们把生活中具体的

事物抽象出数学模型,从而帮助我们写出“好”的算法。

算法设计的研究内容

算法设计是软件工程、计算机科学及相关专业重要的专业技术基础课程和关

键性核心课程,是系统软件及大型应用软件的重要基础。本课程系统的介绍了软

件设计中常用的算法设计与分析方法,锻炼学生分析问题和解决问题的能力,为

开发高效的软件系统及相关领域的研究工作奠定坚实的基础。课程是“编译原理”

和“软件工程” 等专业核心课程的基础课,为学习专业课程及提高软件设计水

平打下良好的基础。

算法设计主要讨论和介绍计算机算法的复杂性理论,结合对一些熟悉的算法

进行分析和总结,强化基础理论知识,对一些大型工程软件的分析,会有一定的

辅助作用。它主要介绍计算机科学及应用领域常见的有代表性的非数值算法及算

法设计的若干重要方法,同时,介绍算法分析的基本知识。阐述计算模型和时间

复杂性的定义;讨论递归技术和算法分析的基本手段;介绍算法设计的几类方法,

如分治法、回溯法、贪心法、动态规划法、分枝限界法等,并结合某些有实用意

义的经典算法来加深设计方法的探讨,由浅入深地进行算法效率分析,使学生在

掌握各种算法设计方法和分析基本技术的同时,也是逻辑思维得到锻炼。

算法设计和数据结构的联系与区别

算法设计和数据结构有很多相似的地方,它们都是对数据信息进行抽象化,

从中得到数学模型,它们都是重要的基础课。它们的联系在于,数据结构作为一

门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,

主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作

(或算法)。通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据

的物理存储结构。也就是说,算法设计和数据结构是相互依存相互影响的。

数据结构十算法= 程序,可见两者见在计算机科学界与计算机应用界的地位。 虽然两者都是对数据的研究分析,但它们还是有很大区别的,两者研究的侧

重点不同。数据结构主要是对数据本身的抽象研究,数据结构是计算机存储、组

织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集

合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据

结构往往同高效的检索算法和索引技术有关。

一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数

据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据

的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据

结构必须同时讨论在该类数据上执行的运算才有意义。算法设计研究在于如何利

用现在的数据结构写出更优秀的算法,如何得到更优秀的数据模型。

在DOS操作中,我们所谈及的文件称之为外部文件。外部文件是存储在外部

设备上, 如:外存储器上,可由计算机操作系统进行管理,如用dir、type等命

令直接对文件进行操作。

Pascal所谈及的文件,称之为内部文件。内部文件的特点是文件的实体(实

际文件)也是存储在外存储器上,成为外部文件的一分子,但在使用时必须在程

序内部以一定的语句与实际文件联系起来,建立一一对应的关系,用内部文件的

逻辑名对实际文件进行操作。内部文件的逻辑名必须符合PASCAL语言标识符

的取名规则。

Pascal中的文件主要用于存放大量的数据。如:成绩管理,原始数据很多,

使用文件先将其存入磁盘,通过程序读出文件中的数据再进行处理,比不使用文

件要来得方便、有效。

Pascal中的一个文件定义为同一类型的元素组成的线性序列。文件中的各

个元素按一定顺序排列,可以从头至尾访问每一个元素,从定义上看,文件与数

组相似,但它们之间有着明显不同的特征,主要表现在:

(1)文件的每一个元素顺序存贮于外部文件设备上(如磁盘上)。因此文

件可以在程序进行前由Pascal程序或用文字编辑软件,如edit、ws、Turbo Pascal

的edit命令等产生,或在运行过程中由程序产生,且运行完后,依然存贮在外

部设备上。

(2)在系统内部,通过文件指针来管理对文件的访问。文件指针是一个保存

程序在文件中位置踪迹的计算器,在一固定时刻,程序仅能对文件中的一个元素

进行读或写的操作,在向文件写入一个元素或从文件读取一个元素后,相应的文

件指针就前进到下一元素位置。而数组是按下标访问。

(3)在文件类型定义中无需规定文件的长度即元素的个数,就是说元素的数

据可动态改变,一个文件可以非常之大,包含许许多多元素,也可以没有任何元

素,即为一个空文件。而数组的元素个数则是确定的。

使用文件大致有以下几个步骤;

(1)说明文件类型,定义文件标识符;

(2)建立内部文件与外部文件的联系;

(3)打开文件;