数据结构学习方法论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

探讨数据结构的学习方法

数据结构在计算机科学中是一门综合性的专业基础课。数据结构是介于数学、计算机硬件和计算机软件三者之间的一门课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译原理、软件工程、人工智能、操作系统、数据库管理系统、数据库系统及其他系统程序的重要基础课,是一门十分重要的核心课程。学习数据结构目的是使学生能够根据实际问题的需要选择合适的数据结构和算法,提高编写应用软件的能力。打好“数据结构”这门课程的扎实基础,对于学习计算机专业的其他课程都是十分有益的。

数据结构是数据存在的形式。要熟悉数据结构的逻辑结构和存储结构。理解数据结构主要是用来存储数据和对数据进行操作。存储则要弄清楚数据之间的结构,操作主要是用来对有用数据进行插入,无用数据进行删除等;数据结构有逻辑上的数据结构和物理上的数据结构之分。一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,一个数据结构必须同时讨论在该类数据上执行的运算才有意义。数据的存储结构是数据结构的实现形式,是其在计算机内的表示;而物理上的数据结构反映成分数据在计算机内部的存储安排。理解顺序表的概念、生成算法,对简单顺序查找和二分查找,对分块查找做到理解掌握;排序问题中,由于冒泡排序在c语言课上已经学习过,再来学习应感觉很轻松。

对插入排序和选择排序理解不会很难,但是,并归排序学习起来都较吃力,需要花较多的时间来补习。此外串的模式匹配也是较难理解的一个地方。链表,除对双向循环链表这一知识点理解较困难之外,其他的知识点像单链表的建立和基本算法等都应较熟悉。接下来的有关堆栈以及队列的知识点较少,栈是一种后进后出机制,它只允许访问访问一个数据项,即栈顶(最后插入的数据项)。它有主要的三种操作:push,向栈内压入值;pop,弹出栈顶的值,即返回栈顶的值,并把它从栈内删除;peek,只返回但不删除栈顶。概念很容易理解,无非就像给弹匣压子弹等等这种类比,除有关算法较为特殊以外,其余算法都是先前学过的顺序表和链表的知识,如前面课程思想上重视的话,这部分内容较好掌握一些。矩阵的应用,尤其对矩阵转置算法的c语言描述是比较难理解的,稀疏矩阵相加算法中,用三元组表实现比较容易理解,对十字链表进行矩阵相加的方法较为陌生,但理解起来不是很难。散列结构分基本概念和存储结构来认识。最后,图及其应用中,图的定义、基本运算如图的生成等要做到理解,但随着学习深入,对它的概念也逐步明朗起来。邻接矩阵、邻接表和逆邻接表做到掌握,而对十字链表和邻接多重表理解有些难度,对图的遍历(包括深度和广度优先遍历),最小生成树问题也是比较陌生的知识点。最短路径和aov网学起来应比前些知识点较轻松。软件开发好比写作文,计算机语言提供了许多华丽的辞藻,而数据结构则考虑如何将这些辞藻组织成一篇优秀的文章来。”在学习这门课中,要熟悉对算法思想的一些描述手

段,包括文字描述、图形描述和计算机语言描述等。

有时,一个数据元素可由若干个数据项(data item)组成,例如,学籍管理系统中学生信息表的每一个数据元素就是一个学生记录。它包括学生的学号、姓名、性别、籍贯、出生年月、成绩等数据项。这些数据项可以分为两种:一种叫做初等项,如学生的性别、籍贯等,这些数据项是在数据处理时不能再分割的最小单位;另一种叫做组合项,如学生的成绩,它可以再划分为数学、物理、化学等更小的项。通常,在解决实际应用问题时是把每个学生记录当作一个基本单位进行访问和处理的。

从上面所介绍的数据结构的概念中可以知道,一个数据结构有两个要素。一个是数据元素的集合,另一个是关系的集合。在形式上,数据结构通常可以采用一个二元组来表示。

数据结构的形式定义为:数据结构是一个二元组

data_structure =(d,r)

其中,d是数据元素的有限集,r是d上关系的有限集。线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构。在实际问题中线性表的例子是很多的,如学生情况信息表是一个线性表:表中数据元素的类型为学生类型;一个字符串也是一个线性表:表中数据元素的类型为字符型,等等。

实际上数据结构课程就是介绍一些常用的数据结构,阐明数据

结构内在的逻辑关系,讨论它们在计算机中的存储表示,并结合各种数据结构,讨论对它们实行的各种运算的实现算法。很多算法实际上是对某种数据结构施行的一种变换,研究算法也就是研究在实施变换过程中数据结构的动态性质。作为计算机学科的基础性专业课程,其在计算机科学中的及其重要,课程学习的好坏,直接关系到后期计算机水平的高低。而这门课程一直因为过于抽象,难以理解,而让人望而止步。如果能够把这门抽象的课程变得具体而生动,必将提高学习人员兴趣,增加其积极性和主动性,也有利于对此课程的学习。

在学习数据结构的线性表、堆栈、队列、树、图几个主要结构时,我们要了解了这些结构的算法,做一些相关的程序,在此基础之上,我们还可运用c++ builder开发工具,把这些算法演示出来。数据结构算法演示系统可以演示线性表、堆栈、队列、树、图等几个基础结构的算法,辅助一些算法说明,让我们更好地掌握算法。数据结构算法演示系统可以演示线性表、堆栈、队列、树、图等几个基础结构的算法,辅助一些算法说明,让使用者更好地掌握算法,在帮助中把演示的具体过程和操作做详细的介绍。

该系统具有操作简单、形象生动,能很好地改善人员对数据结构课程的学习理解,从很大程度上提高人员的学习质量和效率。

线性表、堆栈、队列、树、图几个主要结构是由简单到复杂的,线性表是用来表示关系中1对1;堆栈是特殊的线性表在同一端插入或删除;队列一端删除另一端插入、树1对多;图多对多。常

用的二叉树-最优的二叉树,树的带权路径长度树中所有叶结点的权路径长度之和。记作huffman算法

(1)根据给定的n个权值{w1,w2,…,wn}构成n棵二叉树的集合f={t1,t2,…,tn},其中每棵二叉树ti中只有一个带权为wi的根结点,其左右子树均空。

(2)在f中选取两棵根结点的权值最小的树作为左右子树构成一棵新的二叉树,且置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和。

(3)在f中删除这两棵树,同时将新得到的二叉树加入f中。

(4)重复(2)和(3),直到f只含一棵树为止。这棵树便是这是最常用的用来解决设计工程流水线问题

因此,计算机语言基础是必须的,因为它提供了一种重要的算法思想描述手段——机器可识别的描述。

相关文档
最新文档