《数据结构》学习方法探析_第1页
《数据结构》学习方法探析_第2页
《数据结构》学习方法探析_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、数据结构学习方法探析摘要:数据结构是计算机科学中的一门专业基础课,它不同于其它一些基础课的特点在于其有很强的综合性。从数据结构教学出发,针对存在的问题,从教学方式方法等方面进行了研究和探讨。关键词关键词:数据结构;算法;程序设计0引言数据结构不仅是计算机各专业的一门重要的专业基础课,而且是其它理工专业的热门选修课,在整个课程体系中处于承上启下的核心地位。数据结构这门课程旨在介绍各种重要的数据结构及有关算法,使学生对数据结构有全面的认识并能熟练运用于程序设计,为今后从事科研和开发打下良好的基础。这门课要求学生掌握数据结构的概念及有关算法,如线性表、数组、树、图、排序、查找、文件等,并能运用这些常

2、用的算法去解决一些实际问题,为其它专业课提供程序设计基础。通过数据结构的学习,使学生了解数据对象的特性,学会数据组织的方法和把现实世界中的问题在计算机内部表示的方法,以培养学生良好的程序设计技能,并初步掌握算法的时间和空间复杂度的分析技巧,以便在实际的工作中,能根据工作中的数据对象特性,选择适当的数据结构和存储结构以及相应的算法。同时使学生了解本课程及内容在计算机科学中的应用和地位,为编译原理、操作系统、数据库原理等后续专业课的学习打下坚实的理论基础和实践基础。1数据结构难学原因很多同学都觉得学好数据结构很难,以笔者的经验分析原因如下:(1)大多数学校数据结构课程是安排在C语言程序设计之后,而

3、C语言虽然相对而言是比较简单的计算机语言,但作为一门入门语言,能够学好的同学本身就不多,学精通的就更少了。特别是结构体、指针以及函数的应用,而数据结构中都是用的结构体数组、指针,而且都是以函数形式出现的。对于抽象的数据存储结构、消化算法,将算法转化为C语言函数,并要编写出运行该函数的主程序,这无疑是摆在学生面前的第一道难关。如果C语言的基础没打牢固,学习数据结构当然就会觉得很难。(2)数据结构中的算法较多,在数据结构的教学中,很多学生反映算法多,而且其中的部分算法非常不容易理解。对于一个算法,我们首先要了解它的思想,然后分析它的概要,接下来再考虑细节,然后读代码,要花很长时间才能彻底搞清楚一个

4、算法。总之,学生要多下功夫,往往这个算法刚理解得差不多了,又来了下一个算法。比如讲到图这种数据结构时,图的深度遍历算法、图的广度遍历算法、生成树算法接踵而来,学生要学好,只有刻苦学习。(3)学生掌握了算法,还要将算法转化为程序代码,再写出主函数到调试运行,需要很扎实的程序设计功底,这要求学生需掌握好某种程序设计语言(如C语言)才能做得到。因为实践中的问题往往比平时的习题要复杂得多。实践使学生所学的书本知识“活”起来,起到深化理解和灵活掌握教学内容的目的。由于上述几点原因,致使学生学习数据结构的难度变大。2学好数据结构方法数据结构是计算机课程中的一门专业基础课,但它又有着不同于其它一些基础课的特

5、点,在于它有很强的综合性,不仅仅涉及计算机软件研究,包括“操作系统”、“编译原理”等,还与计算机硬件有着相当大的关系,从编码理论到数据存储都离不开数据结构。因此可以说,数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。但是由于课程内容繁多,许多内容有着相当的难度。所以学好它并不是一件很容易的事情。那么,如何才能学好数据结构呢?(1)立足课本。学好课本上的理论知识。数据结构不是一种计算机语言,不会介绍新的关键词,而是通过学习可以高效地组织数据,设计出良好的算法。学习这门课,要熟悉对算法思想的一些描述手段,包括文字描述、图形描述和计算机语言描述等。因此,计算机语言基础是必须的,因为

6、它提供了一种重要的算法思想描述手段机器可识别的语言描述。(2)抽象问题具体化。数据结构的一大特点是比较抽象,因此学生较难理解,所以要想办法把抽象的问题具体化,一旦问题具体化了,学生理解起来就相对容易。例如本课程一开始就介绍了4种基本的逻辑结构:集合结构:实体间除了“属于同一个集合”的关系外,再没有其它的关系;线性结构:实体间除了“属于同一个集合”外,还有一对一的关系;树型结构:实体间有一对多的关系;图型结构:实体间存在多对多的关系。这4种抽象的逻辑结构形式是人们通过分析研究大量的实际问题而抽象出来的数据结构特性,很多同学很难理解,因此,可以先从实例开始讨论用计算机解决具体问题的各个步骤:提取与

7、此问题相关的数据信息并分析数据特性;把该问题中的各种数据按某种方式存储在计算机中;对数据进行相应操作以便得到想要的结果;对各种存储形式和操作方法进行对比分析。然后再讨论另一个相似问题的求解步骤,并找出这两个问题具有的共同数据特性,让学生明白以上问题因为有着相同的数据特性,所以对数据处理的方法也相似。以此让学生明白集合结构、线性结构、树型结构和图型结构是根据现实世界中实体之间关系的不同特性归纳出来的数据结构特性。(3)加强练习。在学习这门课程的过程中,要多加练习,以便学生能消化课堂上学习的知识,也能加强学生对所学知识的理解以及应用,并能够触类旁通,举一反三。(4)注重实践。数据结构是一门理论与实

8、践相结合的课程,如果只注重理论,学生容易造成“眼高手低”的情况,理论知识学的很扎实,但实际动手能力很差,不符合我们的培养要求;反过来,如果只注重实践,又会造成只见“点”不见“面”的情况,造成系统解决问题的能力差。实践有两个作用:验证算法是否正确。比如,在设计一个新的数据结构时,我们脑中想到的设计算法并不一定是完美的,且往往是不完善的,甚至可能是错误的。“实践是检查真理的唯一标准”,我们通过程序来验证算法的正确性;实践可培养我们完整、彻底解决问题的能力。我们在思考时,只是简单、粗略地解决了一个问题,而很多细节问题并没有考虑到。而动手实践过程中,不得不考虑各种细节问题,不然,程序编译通不过,或者编

9、译通过了,但没有达到预期的结果。因此在学习这门课的过程中,要采用实践与理论学习紧密结合的方式,通过上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,深刻理解、牢固掌握所用到的一些技术。实践是对学生全面综合素质进行训练的一种方法,是课堂教学的一种延伸。每个问题的正确求解,都要通过分析问题、建立模型、设计算法、编制程序、调试优化等步骤。通过实践后,可以提高对数据结构课程内容的深入理解,同时也能使学生更有成就感,从而更加积极地学习这门课程。(5)注重总结。在数据结构的内容中,线性结构、树型结构、图型结构都遵循首先是逻辑结构、其次是存储结构、接下来是基本操作的实现这一原则;而且各种数据结

10、构在存储时,均有两种方法:顺序存储和链式存储。顺序存储是以数据元素在存储空间位置间的某种关系来表示逻辑上的关系。如以位置相邻表示线性表中数据元素之间的前驱和后继的关系,一般用数组来存储。链式存储则不再要求数据元素在存储空间的位置之间保持某种关系,而是在存储实体属性值的同时存储一个或若干个指针指向其有关系的实体存储单元的首地址,一般用链表实现。顺序存储时插入和删除操作因为要大量移动数据元素(末尾除外),所以效率不高,链式存储则不需移动;如果按序号查找,顺序存储则可直接找到所需数据元素,而链式存储则效率不高。通过这些共性化问题可以理清思路,帮助我们理解本课程,同时针对这几种结构的不同特点,再强调它们各自在逻辑结构、存储结构和基本操作上的个性化,加深理解。所以,在学习这门课程的过程中,应该不断吸收、总结、归纳。3结语要学好数据结构这门课程,要多学、多练、多实践。同时,学习数据结构,能加强对某门计算机语言(如

温馨提示

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

评论

0/150

提交评论