学好数据结构的秘诀

《数据结构(C语言实现)》《数据结构与算法详解》作者

 

作为计算机专业的一名“老兵”,笔者个人学习、研究数据结构和算法已经近10年了,在学习的过程中,也遇到不少问题,为了让读者在学习数据结构的过程中少走弯路,下面分享一下笔者个人的一些经验,谈谈关于如何学好“数据结构”的一些粗浅认识。

1.明确数据结构的重要性,树立学好数据结构的信心

数据结构是计算机科学与技术专业的核心课程,不仅仅涉及计算机硬件的研究范围,并且与计算机软件的研究有着更为密切的关系,“数据结构”课程还是操作系统、数据库原理、编译原理、人工智能、算法设计与分析等课程的基础。数据结构是计算机专业硕士研究生入学考试的必考科目之一,还是计算机软件水平考试、等级考试的必考内容之一,数据结构在计算机专业中的重要性不言而喻。

万事开头难,学习任何一样新东西,都是比较困难的,对于初学者而已,数据结构的确是一门不容易掌握的专业基础课,但你一定要树立学好数据结构的信心,主要困难无非有两个,一个是数据结构的概念比较抽象,不容易理解;另一个是没有熟练掌握一门程序设计语言。面对以上困难,只要我们见招拆招,其实也没有什么可怕的,不过选择一本好教材是十分有必要的。

2.熟练掌握程序设计语言,变腐朽为神奇

程序语言是学习数据结构和算法设计的基础,很显然,没有良好的程序设计语言能力,就不能很好地把算法用程序设计语言描述出来,程序设计语言和数据结构、算法的关系就像是画笔和画家的思想关系一样,程序设计语言就是这画笔,数据结构、算法就是画家的思想,即便画家的水平很高,如果不会使用画笔,再美的图画也无法给我们展现出来。

可见,要想学好数据结构,必须至少熟练掌握一门程序设计语言,如C语言、C++语言、Java、C#、Python等。

3.结合生活实际,变抽象为具体

数据结构是一项把实际问题抽象化和进行复杂程序设计的工程。它要求学生不仅具备C语言等高级程序设计语言的基础,而且还要学会掌握把复杂问题抽象成计算机能够解决的离散的数学模型的能力。在学习数据结构的过程中,要将各种结构与实际生活结合起来,把抽象的东西具体化,以便理解。例如学到队列时,很自然就会联想到火车站售票窗口前面排起的长长的队伍,这支长长的队伍其实就是队列的具体化,这样就会很容易理解关于队列的概念,如队头、队尾、出队、入队等。

4.多思考,多上机实践

数据结构既是一门理论性较强的学科,也是一门实践性很强的学科。特别是对于初学者而言,接触到的算法相对较少,编写算法还不够熟练,俗话说 据熟能生巧,勤能补拙”,因此,只有多看有关算法和数据结构方面的图书,认真理解其中的算法思想,除了阅读算法之外,还要自己动手写算法,并在电脑上上机调试,这样才能知道编写的算法是否正确,存在哪些错误和缺陷,以避免今后再犯类似错误,长此以往,自己的算法和数据结构水平才能快速提高。

有的表面上看是正确的程序,在电脑上运行后才发现隐藏的错误,特别是很细微的错误,只有多试几组数据,才知道程序到底是不是正确。因此,对于一个程序或算法,除了仔细阅读程序或算法判断是否存在逻辑错误外,还需要上机调试,在可能出错的地方设置断点,单步跟踪调试程序,观察各变量的变化情况,才能找到具体哪个地方出了问题。有时,可能仅仅是误敲了一个符号或变量,就可能产生错误,这种错误往往不容易发现,只有上机调试才能发现错误。因此,在学习数据结构与算法的时候一定要多上机实践。

只要能做到以上几点,选择一本好的数据结构教材或参考书(最好算法完全用C语言实现,有完整代码),加上读者的勤奋,学好数据结构自然不在话下。

 

今天为您推荐两本精品图书:

1、数据结构与算法详解,人民邮电出版社,   内容包含数据结构+常用算法+实现+调试

本书内容

本书涵盖数据结构和算法等内容,是一本计算机专业人士的案头必备工具书,适合从事C/C++的程序员和科研人员作为词典进行查阅,也可作为数据结构和算法初学者的参考用书。

本书分数据结构和算法两部分,其中数据结构涵盖数据线性表、栈、队列、串、数组和广义表、树、图等内容,算法部分涵盖查找、排序、递推、枚举、递归、贪心、数值、实用算法等内容。

https://item.jd.com/13091684.html

本书选取的案例具有代表性、趣味性和实用性。数据结构除了注重基础知识的讲解,给出了基本运算的实现,案例大部分来自于著名高校的考研题目,代表性强,内容和案例结合性强,注重理论与实践相结合。算法部分不少案例极具趣味性,例如,“求n个数中的最大者”、“和式分解”、“大牛生小牛问题”巧妙利用递归来实现。在算法案例的选取上,还注重实用性,尽量将案例与实际工作生活结合,例如,加油站问题,找零钱问题,大小写金额转换。本书案例丰富,以上特点不仅涵盖了数据结构和算法的各个知识点,还能增加学习的积极性和趣味性。

VC++是一款优秀的C/C++专业开发调试工具,VC++ 6.0及以上版本相互兼容,调试方法区别不大,因此本书最后提供了一个关于如何用VC++6.0调试程序的案例剖析,希望对读者朋友们有所帮助。

◎本书特点

(1)结构安排合理。概念讲解通俗易懂,内容安排和案例选取都是先易后难,循序渐进,注重学习知识的连贯性。

(2)注重基础知识的讲解。在数据结构部分首先是对基础知识和概念的介绍,然后给出相应的基本运算算法实现,最后是提供典型案例和考研试题的讲解及算法实现。

(3)涵盖个人学习经验总结。在讲解知识点、分析案例及调试程序时,加入了作者自己学习过程中的经验总结,指出了初学者常犯的错误,避免读者朋友们少走弯路。

(4)案例很多都来自全国著名高校(清华大学、哈尔滨工业大学、西北大学、华中科技大学、西安电子科技大学、北京航空航天大学、上海大学)的考研题目,并给出了完整的算法实现。

(5)提供完整代码实现,所有代码均在VC++6.0及以上调试通过。

 

 

2、数据结构(C语言实现)(9787111660668),本书配套资源丰富(电子课件、源代码、教学大纲、开发工具)

图片

 

 

作者介绍

本书作者具有有多年教学实践经验,所著数据结构与算法图书深受广大读者喜爱和好评,被华中科技大学、南京理工大学、北京理工大学、北京航空航天大学、西北大学、北京师范大学、西安交通大学、西安电子科技大学、南京航空航天大学、哈尔滨工业大学、中国科学院大学、南开大学、华南理工大学、合肥工业大学、哈尔滨工程大学等著名高校学生选用。QQ群(992139402

内容介绍

本书内容编排符合当前高等院校“数据结构”课程的现状和发展趋势,知识点涵盖全面,案例和课后习题丰富,每章均有综合案例以巩固对知识点的掌握程度,突出实用性和实践性。本书共9章,内容包括绪论、线性表、栈与队列、串、数组与广义表、树、图、查找及排序。本书采用C语言作为数据结构和算法的描述语言。 本书可作为高等院校计算机、软件工程等相关专业“数据结构”课程的教材,也可作为从事计算机软件开发、准备考取计算机专业研究生和参加软考的人员的参考用书。

由于时间仓促,加上本人水平有限,书中难免存在一些不足和错误,希望读者朋友通过邮箱235668080@qq.com与我们联系,也可通过QQ群(992139402)沟通交流。祝愿各位在阅读本书的过程中有一个愉快的旅程。

 

 

 

 

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值