关注公众号“程序员书单”html
加个“星标”,天天带你读好书!程序员
学习编程,数据结构是你必需要掌握的基础知识,那么数据结构究竟是什么呢?算法
其实数据结构就是用来描述计算机里存储数据的一种数学模型,由于计算机里要存储不少乱七八糟的数据,因此也须要不一样的数据结构来描述。编程
了解了基本概念以后,接下来咱们再来看看,为何咱们要学习数据结构呢?设计模式
在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验代表,系统实现的困难程度和系统构造的质量都严重的依赖因而否选择了最优的数据结构。许多时候,肯定了数据结构后,算法就容易获得了。有些时候事情也会反过来,咱们根据特定算法来选择数据结构与之适应。不论哪一种状况,选择合适的数据结构都是很是重要的。api
选择了数据结构,算法也随之肯定,是数据而不是算法是系统构造的关键因素。这种洞见致使了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。也就是说,选定数据结构每每是解决问题的核心,好比咱们作一道算法题,每每就要先肯定数据结构,再根据这个数据结构去思考怎么解题。数据结构
若是没有数据结构的基础知识,也就没有谈算法的意义了,不少时候即便你会使用一些封装好的编程api,但你殊不知道其背后的实现原理,好比hashmap,linkedlist这些Java里的集合类,实际上都是JDK封装好的基础数据结构。架构
因此,对于程序员来讲,数据结构是绕不过的一个基础,今天咱们要推荐的就是一份可以帮助你们学好数据结构的书单。app
数据结构书单机器学习
大话数据结构
《大话数据结构》为超级畅销书《大话设计模式》做者程杰潜心三年推出的扛鼎之做!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。
通篇以一种趣味方式来叙述,大量引用了各类各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法作到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深入,是一本很是适合自学的读物。
做者简介
程杰,一个被读者誉为很适合写IT技术书的家伙。《大话设计模式》做者。此书07年底出版至今已经简体版印刷9次、繁体版印刷6次,取得了较好的成绩,开创了一种适合国人阅读的趣味讲解IT知识的风格模式。
趣学数据结构
本书基于C++语言编写,从趣味故事引入算法复杂性计算及数据结构基础内容,涵盖线性结构、树形结构和图形结构,包括链表、栈和队列、树和图的应用等。本书内容还涉及数据结构的基本应用(包括各类查找、排序等)和高级应用(包括优先队列、并查集、B-树、B+树和红黑树等)。
经过大量图解将抽象数据模型简单通俗化,语言表述浅显易懂,并结合有趣的实例帮助读者轻松掌握数据结构。
做者简介
陈小玉,南阳理工学院副教授,高级程序员,研究方向为智能计算、数据挖掘与机器学习,主要讲授“算法设计与分析”和“人工智能”等课程,屡次指导学生得到ACM程序设计大赛亚洲区奖项。
Python数据结构与算法分析
了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益普遍的应用,Python程序员须要实现与传统的面向对象编程语言类似的数据结构与算法。
本书是用Python描述数据结构与算法的开山之做,汇聚了做者多年的实战经验,向读者透彻讲解在Python环境下,如何经过一系列存储机制高效地实现各种算法。经过本书,读者将深入理解Python数据结构、递归、搜索、排序、树与图的应用,等等。
【做者介绍】
布拉德利·米勒(Bradley N. Miller)美国路德学院计算机科学名誉教授,曾获美国计算机协会软件系统奖,对Python课程开发有深刻研究,由他创立的互动式教科书平台Runestone Interactive与全球600多家教育机构有合做。
戴维·拉努姆(David L. Ranum)IBM Watson认知软件工程师,医学信息学博士,致力于利用天然语言处理等人工智能技术解决医疗问题,曾在美国路德学院讲授计算机科学课程近三十载。
图解数据结构:使用Java(其余语言版本也有)
这是一本以Java程序语言实战来解说数据结构概念的教材。全书内容浅显易懂,利用大量且丰富的图示与范例,详解复杂的抽象理论,从最基本的数据结构概念开始说明,再以Java工具加以诠释阵列结构、堆栈、链表、队列、排序、查找等重要的概念,引领读者抓住重点轻松进入数据结构的学习领域。
《图解数据结构:使用Java》内容架构完整,逻辑清楚,采用丰富的图例来阐述基本概念及应用,有效提高可读性。以Java程序语言实现数据结构中的重要理论,以范例程序说明数据结构的内涵。采用“Eclipse”Java ID工具,整合编译、执行、测试及除错功能。强调边作边学,结合下载文件,给予最完整的支援。
做者胡昭民,因为做者长期从事信息教育及写做,在文字的表达上简洁明了、逻辑清晰,并安排了大量的习题,供读者检验学习成果。
今日问题
你是如何入门和学习数据结构的呢?