学习数据结构,有什么好的书籍可以推荐?

1

计科专业从事软件开发多年,在学校里面数据结构这个课程开设过,基本上第一次学习数据结构C语言版本脑子几乎都是晕乎的,因为搞不懂指针来回指向,后来跟一个前辈请教如何学这东西,先把指针彻底搞明白,然后再学习数据模型,最后一步直接用C语言代码来实现,开始不要尝试着都能给搞明白,基础不够很难理解透彻,于是专门拿出时间把C语言的指针研究了一遍,由于当时不像现在的互联网上资料那么多, 只能在网上找点抽象的例子进行研究,对指针彻底的了解是看了林锐博士写的高质量C/C++编程,里面对指针的介绍特别深刻,从此指针也就慢慢理解了。

掌握了指针之后再去搞数据结构,想比之前已经轻松太多了,也不要太着急直接去尝试搞代码先把数据模型搞明白,数据模型是连接数据的桥梁,链表,队列,栈,二叉树等等概念,然后了解每个数据模型的数据结构,以及需要做的动作,在没写代码之前先把这些数据模型要做什么事情搞清楚,然后才去尝试写代码,一般来讲第一个模型写的比较费劲后面就以次类推了,万事开头难,数据结构书本主要分为多种编程语言的,有C语言,C++,java版本数据机构,对于这类的书籍讲解差异不是很大,没有必要太过追求那本书,主要是还是模型思想和代码实现.

学习数据结构有什么用?

  • 现在就拿自己从事的行业来讲,C/C++,数据结构算是基本功,设计一个功能模块除了选择编程语言之外剩下的就是构造数据模型,在C语言里面叫结构体,在C++里面属于类,如何设计有时候就会借助数据结构里面的基本模型,常见的编程模型里面队列和链表用的比较多,一般的设计模型中都会涉及到消息队列,就是典型的一种数据模型,如果有数据结构基础这些东西理解起来就非常快,所谓的编程基础除了基本的编程语法基础还有数据模型等基础。

  • 学习数据结构也非常有助于算法理解,再复杂的算法也是由基础的数据结构算法构造起来的,任何一种算法也不是什么空中楼阁都是无数个小的基础算法堆积起来的,没有这些基础直接从事算法的学习,几乎是不太可能的事情。
  • 懂得常见的数据结构模型,更容易看懂大型的项目的代码,拿到一份源码首先要梳理的是功能列表以及里面数据内容的传递,懂数据结构对于理解框架非常有好处,要玩大型的项目,先从看懂基础的代码开始,研究代码需要一定的基础,有了模型概念对于有框架的代码研究起来快一些。

在刚入行的时候经常听到老程序员说到,一个新的功能模块只要数据结构都梳理清楚了,就可以考虑写代码了,不要看一个功能模块里面一个小小的类或者结构体,里面每个变量可能都会串联着一串功能,所以一个结构体设计完毕了,基本功能模块也就设计清楚了。

2


数据结构是计算机存储、组织数据的方式,包括数组、链表、栈、二叉树、哈希表等。算法是解决问题的方案,是为数据结构服务的,算法能对数据结构中的数据进行各种处理,比如查找数组中的数据,或对其进行排序等等。

有很多程序员能够非常熟练地运用编程语言,但是对于自己开发的应用的效率和未来的改进方向并没有非常清晰的认识和规划,这往往是因为没有掌握好数据结构和算法的知识,不能从全局角度把握问题的解决和优化方案。因此,对于程序员来说,学习数据结构和算法是非常有用的。


对数据结构和算法的应用随处可见

应用数据结构和算法可以很高效地解决常见问题。

我们买票排队,应用的数据结构就是队列,特点是先进先出;物流装车应用的数据结构就是栈,特点是先进后出(最先被装到车上的货物最后才能取出来)。

3

《大话数据结构》、《数据结构与算法》、《算法导论》。学习计算机方面的东西,建议看外国大牛写的书,国内的人写的书总体感觉偏简略。

4

为了装的高大上一点,那就推荐这个吧:《Data Structures For Game Programmers》,算是非科班最好的选择了,当然其实都差不多,关键是须有要完整的实例,然后可以自己开始动手写。也可以看看清华大学严蔚民的《数据结构》

5

市面上的数据结构书籍比较多,怎么选择才是关键,我个人推荐程杰老师的《大话数据结构》具有多年的程序员经验,写的也很通俗易懂,我自己也在看,其次是极客时间的【数据结构】专栏也写的很好,如果需要我可以免费提供给你。

6

1,《Algorithms》

中文名《算法》第四版,Robert Sedgewick

2,中文名《Java/C++程序设计 基础 编程抽象 算法策略》

如果你不是为了应试,不要看国内数据结构教材。如果一定要看一本(前提是你是自学而不是应试),那就清华大学邓俊辉老师的数据结构,配合学堂在线上他的课程

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章