当前位置: 东星资源网 > 大学生 > 学习 > 正文

数据结构学习方法

时间:2017-05-18 来源:东星资源网 本文已影响 手机版

篇一:高效学习数据结构

高效学习数据结构

摘要本文结合数据结构课程的特点,探讨了高效学习数据结构的内涵,分析了高效学习数据结构课程中需要注意的问题,以便提高学习效率,使得学生能够更好地掌握这门课程。

关键字数据结构高效学习知识框架

1 引言

数据结构课程主要讨论各种数据组织中的逻辑结构、存储结构以及有关算法,研究如何根据实际应用的要求,对数据进行有效的组织、存储和处理,进而编制出高效率的程序,是一门逻辑性和实践性很强的课程。不少同学刚开始学习时,觉得这门课程很难学,知识点很多而且灵活多变,有些同学花很长时间学习该课程,却收效甚微。因此,如何充分利用时间,高效地学习数据结构成为很多同学共同关注的话题。

2 关于高效学习的界定

不同时期和不同课程高效学习的内涵与特征会有所不同,目前关于高效学习的定义主要有以下几种。

第一种定义认为高效学习应强调有效学习,认为那种死记硬背、生搬硬套的学习是无效的学习,不能够真正理解、灵活运用所学知识。

第二种定义认为所谓“高效”是指能够掌握有效的学习策略和思维策略,提高学习效率,从而既减轻学习负担,又提高学习质量。

这些“高效学习”的界定或强调学习的结果,对学习质量的要求侧重于认知和能力;或重视学习效率,但对学习结果没有给出具体的评价标准。本文所讨论的高效学习是指高效率、高效益的学习。高效益学习是学习效率追求的目标,而高效率学习是提高学习效益的前提。高效地学习数据结构,一方面指学生能充分利用时间,积极、主动地参与学习;另一方面是指学生能够达到获取知识、形成技能、培养能力的目的。

篇二:学习数据结构的意义和作用

学习数据结构的意义和作用

董建寅 罗远

(上海金融学院信息管理系,201209)

引言 为什么要学习数据结构?数据结构是否是一门纯数学课程?它在专业课程体系中起什么样的作用?许多学生学完后也茫然一片,为此我们很有必要探讨一下学习数据结构的意思和作用。众所周知,计算机科学是一门研究数据表示和数据处理的科学。数据是计算机化的信息,它是计算机可以直接处理的最基本和最重要的对象。无论是进行科学计算或数据处理、过程控制以及对文件的存储和检索及数据库技术应用等,都是对数据进行加工处理的过程。因此,要设计出一个结构好效率高的程序,必须研究数据的特性及数据间的相互关系及其对应的存储表示,并利用这些特性和关系设计出相应的算法和程序。

1 学习数据数据结构的意义

数据结构是计算机科学与技术专业、计算机信息管理与应用专业,电子商务等专业的基础课,是十分重要的核心课程。所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付当前众多复杂的课题。要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。打好“数据结构”这门课程的扎实基础,对于学习计算机专业的其他课程,如操作系统、数据库管理系统、软件工程、编译原理、人工智能、图视学等都是十分有益的。

2 为什么要学习数据结构

在计算机发展的初期,人们使用计算机的目的主要是处理数值计算问题。当我们使用计算机来解决一个具体问题时,一般需要经过下列几个步骤:首先要从该具体问题抽象出一个适当的数学模型,然后设计或选择一个解此数学模型的算法,最后编出程序进行调试、测试,直至得到最终的解答。例如,求解梁架结构中应力的数学模型的线性方程组,可以使用迭代算法来求解。

由于当时所涉及的运算对象是简单的整型、实型或布尔类型数据,所以程序设计者的主要精力是集中于程序设计的技巧上,而无须重视数据结构。随着计算机应用领域的扩大和软、硬件的发展,非数值计算问题越来越显得重要。据统计,当今处理非数值计算性问题占用了85%以上的机器时间。这类问题涉及到的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式加以描述。因此,解决这类问题的关键不再是数学分析和计算方法,而是要设计出合适的数据结构,才能有效地解决问题。下面所列举的就是属于这一类的具体问题。

例1:图书馆信息检索系统。当我们根据书名查找某本书有关情况的时候;或者根据作者或某个出版社查找有关书籍的时候,或根据书刊号查找作者和出版社等有关情况的时候,只要我们建立了相关的数据结构,按照某种算法编写了相关程序,就可以实现计算机自动检索。由此,可以在图书馆信息检索系统中建立一张按书刊号顺序排列的图书信息表和分别按作者、书名、出版社顺序排列的索引表,如图1.1所示。由这四张表构成的文件便是图书信息检索的数学模型,计算机的主要操作便是按照某个特定要求(如给定书名)对图

书馆藏书信息文件进行查询。

诸如此类的还有学生信息查询系统、商场商品管理系统、仓库物资管理系统等。在这类文档管理的数学模型中,计算机处理的对象之间通常存在着的是一种简单的线性关系,这类数学模型可称为线性的数据结构。

(a)图书信息

图1.1图书馆信息检索

例2:八皇后问题。在八皇后问题中,处理过程不是根据某种确定的计算法则,而是利用试探和回溯的探索技术求解。为了求得合理布局,在计算机中要存储布局的当前状态。从最初的布局状态开始,一步步地进行试探,每试探一步形成一个新的状态,整个试探过程形成了一棵隐含的状态树。如图1.2所示(为了描述方便,将八皇后问题简化为四皇后问题)。回溯法求解过程实质上就是一个遍历状态树的过程。在这个问题中所出现的树也是一种数据结构,它可以应用在许多非数值计算的问题中。

例3:教学计划编排问题。一个教学计划包含许多课程,在教学计划包含的许多课程之间,

有些必须按规定的先后次序进行,有些则没有次序要求。即有些课程之间有先修和后续的关系,有些课程可以任意安排次序。这种各个课程之间的次序关系可用一个称作图的数据结构来表示,如图1.3所示。有向图中的每个顶点表示一门课程,如果从顶点vi到vj之间存在有向边<vi,vj>,则表示课程i必须先于课程j进行。

由以上三个例子可见,描述这类非数值计算问题的数学模型不再是数学方程,而是诸如线性表、树、图之类的数据结(本文来自:WwW.dXf5.coM 东星 资源网:数据结构学习方法)构。因此,可以说数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。

学习数据结构的目的是为了了解计算机处理对象的特性,将实际问题中所涉及的处理

对象在计算机中表示出来并对它们进行处理。与此同时,通过算法训练来提高学生的思维能力,通过程序设计的技能训练来促进学生的综合应用能力和专业素质的提高。

课程编号

C1 c2 C3 C4 C5 C6 C7 C8 C9 C10 课程名称

程序设计基础 离散数学 数据结构 汇编语言

C程序设计语言 计算机图形学 接口技术 数据库原理 编译原理 操作系统

先修课程 无 C1

C1,C2, C5 C1 C1

C3,C4,C5 C4

C3,C10 C4 ,C5 C3

3数据结构课程的内容

数据结构与数学、计算机硬件和软件有十分密切的关系,它是介于数学、计算机硬件和计算机软件之间的一门计算机专业的核心课程,是高级程序设计语言、操作系统、编译原理、数据库、人工智能、图视学等课程的基础。同时,数据结构技术也广泛应用于信息科学、系统工程、应用数学以及各种工程技术领域。

数据结构课程重在讨论软件开发过程中的方案设计阶段、同时设计编码和分析阶段的若干基本问题。此外,为了构造出好的数据结构及其实现,还需考虑数据结构及其实现的评价与选择。因此,数据结构的内容包括三个层次的五个“要素”,如图1.4所示。

数据结构的核心技术是分解与抽象。通过分解可以划分出数据的三个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合使我们将问题变换为数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。熟练地掌握这两个过程是数据结构课程在专业技能培养方面的基本目标。

结束语:数据结构作为一门独立的课程在国外是从1968年才开始的,但在此之前其有关

内容已散见于编译原理及操作系统之中。20世纪60年代中期,美国的一些大学开始设立有关课程,但当时的课程名称并不叫数据结构。1968年美国唐.欧.克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。从20世纪60年代末到70年代初,出现了大型程序,软件也相对独立,结构程序设计成为程序设计方法学的主要内容,人们越来越重视数据结构。从70年代中期到80年代,各种版本的数据结构著作相继出现。目前,数据结构的发展并未终结,一方面,面向各专门领域中特殊问题的数据结构得到研究和发展,如多维图形数据结构等;另一方面,从抽象数据类型和面向对象的观点来讨论数据结构已成为一种新的趋势,越来越被人们所重视。 参考资料

[1] 《数据结构(C语言版)》 严蔚敏 编(著) 清华大学出版社;1997.4

[2] 《数据结构习题解析与上机实验指导》宁正元编(著) 上海交大出版社;2000.11 [3] 论文《数据结构精品课程建设模式与实践》浙江万里学院 杨秀金 汪沁 胡锡伟 等 [4]《数据结构实用教程》徐孝凯(著),北京,清华大学出版社,1999年12月第1版

篇三:自考数据结构自学方法指导

自考数据结构自学方法指导

我们称数据结构是计算机科学中的一门专业基础课,但它又有着不同于其他一些基础课的特点,在于它有很强的综合性,不仅仅涉及计算机软件研究,包括操作系统,编译程序等,还与计算机硬件有着相当大的关系,从编码理论到数据存储都离不开数据结构。因此可以说,数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。所以《数据结构》这门课程对于学好计算机应用专业的其他后续课程起着非常关键的作用。但是由于课程内容繁多,许多内容有着相当的难度。所以学好它并不是一件很容易的事情。所以一个好的学习方法就显得尤其重要。判断一个学习方法好坏的标准关键看这种学习方法是否适合于自己。

大家在学习这么课程的过程中,应该不断吸收、总结、归纳,结合自己的特点,找出一种对自己来说行之有效的学习方法,这样学习起来就可以达到事半功倍。本文是依据《数据结构》课程自身的特点已经以往的一些教学经验,总结、归纳得出一些学习方法上的建议和重点和难点分析,希望能给广大学员带来启发,从来使大家读完之后,能够使自己的学习更加行之有效。下面我们来逐步给大家讲解:

学习本课程的一些方法上的建议

1.因为本课程的算法是用类C语言来描述的(算法的基本概念我们将在下面的内容介绍)。类C语言是一种伪语言,其语法与C语言在很大程度上是相似的。所以我们需要掌握C语言和类C语言是学好数据结构的先决条件,所以事先应该对C语言和类C语言有所了解。

2.下面我来介绍一下本课程的基本内容:

数据结构这门课程主要有以下几个内容:

(1)线形结构——包括线形表、栈、队列和数组等内容

(2)非线形结构——包括树、图等内容

(3)排序

(4)查找

这些内容基本上概括了整个数据结构课程的基本内容。学员们在学习的过程中,要注意比较它们之间的联系和不同点,需要指出的是查找和排序是日常工作中经常遇到的操作,因此在数据结构中我们也专门的章节给学员们加以介绍。

3.我们要了解一下整个数据结构课程讲述的基本步骤,这样我们就可以知道该如何学习书中的每一种数据结构:

(1)逻辑结构——其特点是它独立与计算机的硬件结构的一种抽象的数学拓扑结构

(2)基本运算——即定义在某种逻辑结构上的具体操作。每一种逻辑结构都对应于一个运算的集合。在这里我们仅仅需要考虑的是每种运算的功能,即只关心它“做什么”,而不考虑如何去实现它。

(3)存储结构——也就是逻辑结构在计算机中的具体实现,它是一个依赖与计算机硬件的结构。

(4)运算实现——运算只有和具体的存储结构相结合,才能够得到实现,因此它所关心的问题就是如何去实现某种具体的运算,即让我们知道该“怎么做”。

(5)算法评价——每一种运算实现的不同方法,所对应的时间性能、空间性能都是不同。所以我们需要从这两个角度来考虑和评价我们所选择的运算实现方法的好坏。

以上所列举的几项是每一种数据结构都需要讲述的,而且每一种数据结构的这五个方面都是密切联系的,而且不同数据结构在某一特定方面也有着相互之间的联系。所以我们在学习的过程中,要逐步学会一一加一比较,加以归纳、总结,从而找出它们之间的相同点和不同点。这样有助于加深对整个课程的理解,并且在脑海中逐步形成一个完整的体系。

4.提高解题能力的最佳途径是首先理解教材中介绍的各个算法,这些算法大多数都是经典的。同学学习和理会这些算法的含义和具体实现过程,我们可以归纳总结出一些良好的基本解题思路、方法和技巧。

标签: