首页
计算机与互联网
程序员学数据结构
程序员学数据结构
书籍作者:威廉·史密斯
ISBN:9787115482808
书籍语言:简体中文
连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3
下载次数:2233
创建日期:2021-02-14
发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书由浅入深地详细讲解了计算机存储使用的多种数据结构。本书首先讲解了初级的数据结构(如表、栈、队列和堆等),具体包括它们的工作原理、功能实现以及典型的应用程序等;然后讨论了数据结构,如泛型集合、排序、搜索和递归等;最后介绍了如何在日常应用中使用这些数据结构。 本书通过实际案例向读者介绍了多种数据结构及其潜在应用,教会读者如何分析问题、选择合适的数据结构解决方案等。本书的一大特色是使用多种语言(C#、Java、Objective-C和Swift)进行讲述。 本书适合初学编程或自学编程的人员以及计算机相关专业的教师和学生阅读,也非常适合程序员参考。
作者简介
William Smith早年获得了环境科学与商务管理学位,在环境领域从事了数年的专业工作。他的软件开发经历始于1988年,并在从事环境领域工作时,始终将编程作为他的兴趣爱好,不断进行软件开发。后来他进入了马里兰大学深造,并获得了计算机科学学位。 William 现在是一名独立软件开发工程师和专业技术图书的作者。他成立了Appsmiths公司,该公司的主要业务是软件开发和咨询,致力于使用原生工具和跨平台工具(如Xamarin和Monogame)来进行移动应用和游戏开发。 William与他的夫人和孩子一起居住在西佛吉尼亚州的乡村,全家享受着打猎、钓鱼和露营给他们带来的乐趣。
编辑推荐
本书通过实用的例子来帮助读者快速理解多种数据结构和它们在实际应用程序中的使用方法。本书使用一系列主流移动软件开发平台通用的语言编写了示例程序,并通过这些示例程序向读者介绍了多种数据结构和对应的用法。同时,本书还通过示例程序用浅显易懂的方式展示了很多实际案例。 本书的D一部分涵盖了大多数语言(如Objective-C、C#、Java以及Swift)均支持的基本数据结构,详细地介绍了如数组、列表、栈、队列、堆这些数据结构的用法和典型应用,并针对每种语言探讨了这些数据结构的特点。这些章节均设有案例学习,通过讲解如何解决实际问题以帮助读者更深入地理解这些数据结构的内涵。 本书的D二部分讨论一些与数据结构相关知识,如泛型数据集、递归、排序和查找。这些章节也提供了相应的案例学习,帮助读者将这些知识应用到自己的应用开发中。 本书包括以下内容: ·快速回顾基础数据类型的定义,通过实际案例来学习不同数据类型的应用场景和这些数据类型的实践,并介绍这些数据类型在不同平台间的区别; ·回顾常用的数据结构,并使用不同的移动开发语言来构建这些数据结构的运行示例; ·数据结构中的概念,如泛型数据集和递归等; ·学习如何在日常应用开发中使用对象数据集,如数组、列表、栈和队列; ·学习树形数据结构(如堆、二叉树和图),并学习如何将它们应用到软件开发中; ·学习如何使用不同语言在数组、堆、图和二叉树中进行排序和查找操作。
目录
第 1章 数据类型:基本的数据结构 1 1.1 数值数据类型 1 1.1.1 整型 2 1.1.2 单精度浮点类型 10 1.1.3 双精度浮点类型 12 1.1.4 货币类型 15 1.1.5 类型转换 17 1.2 布尔数据类型 20 1.2.1 运算符优先级 22 1.2.2 短路求值 22 1.3 字符串 26 1.4 小结 29 第 2章 数组:基本数据集 30 2.1 可变数组与不可变数组 32 案例学习:用户登录到一个Web服务 32 2.2 高级话题 43 2.2.1 线性查找 43 2.2.2 原始数组 45 2.2.3 对象数组 46 2.2.4 混合数组 46 2.2.5 多维数组 47 2.2.6 不规则数组 49 2.3 小结 49 第3章 列表:线性数据集 50 3.1 列表的实现 51 3.1.1 数组表 52 3.1.2 链表 53 3.2 列表的实例化 53 3.3 案例回顾:用户登录到一个 Web服务 55 3.3.1 泛型 59 3.3.2 案例学习:自行车路径 60 3.4 双链表 73 3.5 查找 73 3.6 一些指针 74 3.7 小结 74 第4章 栈:后入先出的数据集 75 4.1 栈的初始化 75 4.1.1 UINavigationController 76 4.1.2 栈的操作 77 4.2 案例学习:运动规划算法 77 4.3 高级话题——栈的实现 88 4.3.1 数组栈 88 4.3.2 链表栈 88 4.4 小结 89 第5章 队列:先入先出的数据集 90 5.1 队列的初始化 91 5.2 案例学习:客户服务 93 5.3 高级话题 106 5.3.1 数组队列 106 5.3.2 链表队列 106 5.3.3 堆队列 106 5.3.4 双端队列 107 5.3.5 优先级队列 107 5.4 小结 107 第6章 字典:关键字数据集 108 6.1 字典的初始化 109 6.2 案例学习:游戏代币统计 113 6.3 高级话题 125 6.3.1 散列表字典 126 6.3.2 查找树字典 126 6.4 小结 126 第7章 集合:不包含重复项的数据集 127 7.1 集合论 128 7.2 集合的初始化 129 7.3 案例回顾:用户登录到一个 Web服务 133 7.4 案例学习:音乐播放列表 137 7.5 高级话题 150 7.5.1 散列表集合 150 7.5.2 树集合 151 7.5.3 数组集合 151 7.6 小结 151 第8章 结构体:更为复杂的数据类型 152 8.1 基本要点 152 8.1.1 C# 152 8.1.2 Java 158 8.1.3 Objective-C 158 8.1.4 Swift 161 8.2 枚举类型 165 8.3 小结 170 第9章 树:非线性数据结构 171 9.1 树结构与树类型 171 9.2 树的相关术语 172 9.3 树的基本操作 173 9.4 树的实例化 174 9.5 树的结构 174 9.6 递归 207 9.7 遍历 208 9.8 小结 209 第 10章 堆:有序树 210 10.1 堆的实现 210 10.2 堆的操作 211 10.3 堆的实例化 212 10.4 最小堆结构 212 10.5 常见应用场景 227 10.6 小结 227 第 11章 图:互相连接的对象 228 11.1 概念图示 228 11.2 图的操作 229 11.3 图的实现 231 11.4 图数据结构 231 11.5 小结 249 第 12章 排序:为混乱带来秩序 250 12.1 选择排序 251 12.2 插入排序 255 12.3 冒泡排序 259 12.4 快速排序 263 12.5 归并排序 268 12.6 桶排序 273 12.7 小结 276 第 13章 查找:找你所需 277 13.1 线性查找 277 13.2 二分查找 281 13.3 跳跃查找 284 13.4 小结 289