数据结构与算法JavaScript描述

数据结构与算法JavaScript描述

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
6.5125 评价豆瓣读书
免费试读

作品简介

通过本书的学习,读者将能自如地选择最合适的数据结构与算法,并在JavaScript开发中懂得权衡使用。此外,本书也概述了与数据结构与算法相关的JavaScript特性。

作者简介:

Michael McMillan

作为大学老师和程序员,曾编写过多部受到好评的数据结构与算法图书,包括Data Structures and Algorithms Using C#、Data Structures and Algorithms Using Visual Basic.NET,以及其他计算机教程,如Object-Oriented Programming with Visual Basic.NET、C++ Programming: An Introduction、Java Programming Tutorial、Perl from the Ground Up等。Michael现在阿肯色州北小石城普瓦斯基技术学院当讲师,教授计算机信息系统。他还是北小石城阿肯色大学的兼职讲师,教授信息科学。在做讲师之前,他曾是阿肯色儿童医院的一名程序设计师/分析师,负责统计计算和数据分析。

译者简介:

王群锋

1981年生于陕西省富平县桥西大队三里村,2004年毕业于西安电子科技大学。毕业后当了一名程序员,现居西安,在IBM西安研发中心从事下一代统计预测软件的开发工作。

杜欢

淘宝网高级技术专家,2012年加入淘宝,曾就职于雅虎台湾及CISCO。对前端架构、前后端协作有自己的见解,专注于Web产品设计、可用性实施,热爱标准化。

作品目录

  1. O'Reilly Media, Inc.介绍
  2. 业界评论
  3. 推荐序
  4. 前言
  5. 为什么要学习数据结构和算法
  6. 阅读本书需要的工具
  7. 本书组织结构
  8. 使用代码示例
  9. Safari® Books Online
  10. 联系我们
  11. 致谢
  12. 第 1 章  JavaScript的编程环境和模型
  13. 1.1 JavaScript环境
  14. 1.2 JavaScript编程实践
  15. 1.2.1 声明和初始化变量
  16. 1.2.2 JavaScript中的算术运算和数学库函数
  17. 1.2.3 判断结构
  18. 1.2.4 循环结构
  19. 1.2.5 函数
  20. 1.2.6 变量作用域
  21. 1.2.7 递归
  22. 1.3 对象和面向对象编程
  23. 1.4 小结
  24. 第 2 章 数组
  25. 2.1 JavaScript中对数组的定义
  26. 2.2 使用数组
  27. 2.2.1 创建数组
  28. 2.2.2 读写数组
  29. 2.2.3 由字符串生成数组
  30. 2.2.4 对数组的整体性操作
  31. 2.3 存取函数
  32. 2.3.1 查找元素
  33. 2.3.2 数组的字符串表示
  34. 2.3.3 由已有数组创建新数组
  35. 2.4 可变函数
  36. 2.4.1 为数组添加元素
  37. 2.4.2 从数组中删除元素
  38. 2.4.3 从数组中间位置添加和删除元素
  39. 2.4.4 为数组排序
  40. 2.5 迭代器方法
  41. 2.5.1 不生成新数组的迭代器方法
  42. 2.5.2 生成新数组的迭代器方法
  43. 2.6 二维和多维数组
  44. 2.6.1 创建二维数组
  45. 2.6.2 处理二维数组的元素
  46. 2.6.3 参差不齐的数组
  47. 2.7 对象数组
  48. 2.8 对象中的数组
  49. 2.9 练习
  50. 第 3 章 列表
  51. 3.1 列表的抽象数据类型定义
  52. 3.2 实现列表类
  53. 3.2.1  append :给列表添加元素
  54. 3.2.2  remove :从列表中删除元素
  55. 3.2.3  find :在列表中查找某一元素
  56. 3.2.4  length :列表中有多少个元素
  57. 3.2.5  toString :显示列表中的元素
  58. 3.2.6  insert :向列表中插入一个元素
  59. 3.2.7  clear :清空列表中所有的元素
  60. 3.2.8  contains :判断给定值是否在列表中
  61. 3.2.9 遍历列表
  62. 3.3 使用迭代器访问列表
  63. 3.4 一个基于列表的应用
  64. 3.4.1 读取文本文件
  65. 3.4.2 使用列表管理影碟租赁
  66. 3.5 练习
  67. 第 4 章 栈
  68. 4.1 对栈的操作
  69. 4.2 栈的实现
  70. 4.3 使用 Stack 类
  71. 4.3.1 数制间的相互转换
  72. 4.3.2 回文
  73. 4.3.3 递归演示
  74. 4.4 练习
  75. 第 5 章 队列
  76. 5.1 对队列的操作
  77. 5.2 一个用数组实现的队列
  78. 5.3 使用队列:方块舞的舞伴分配问题
  79. 5.4 使用队列对数据进行排序
  80. 5.5 优先队列
  81. 5.6 练习
  82. 第 6 章 链表
  83. 6.1 数组的缺点
  84. 6.2 定义链表
  85. 6.3 设计一个基于对象的链表
  86. 6.3.1  Node 类
  87. 6.3.2  LinkedList 类
  88. 6.3.3 插入新节点
  89. 6.3.4 从链表中删除一个节点
  90. 6.4 双向链表
  91. 6.5 循环链表
  92. 6.6 链表的其他方法
  93. 6.7 练习
  94. 第 7 章  字典
  95. 7.1  Dictionary 类
  96. 7.2  Dictionary 类的辅助方法
  97. 7.3 为 Dictionary 类添加排序功能
  98. 7.4 练习
  99. 第 8 章 散列
  100. 8.1 散列概览
  101. 8.2  HashTable 类
  102. 8.2.1 选择一个散列函数
  103. 8.2.2 一个更好的散列函数
  104. 8.2.3 散列化整型键
  105. 8.2.4 对散列表排序、从散列表中取值
  106. 8.3 碰撞处理
  107. 8.3.1 开链法
  108. 8.3.2 线性探测法
  109. 8.4 练习
  110. 第 9 章 集合
  111. 9.1 集合的定义、操作和属性
  112. 9.1.1 集合的定义
  113. 9.1.2 对集合的操作
  114. 9.2  Set 类的实现
  115. 9.3 更多集合操作
  116. 9.4 练习
  117. 第 10 章 二叉树和二叉查找树
  118. 10.1 树的定义
  119. 10.2 二叉树和二叉查找树
  120. 10.2.1 实现二叉查找树
  121. 10.2.2 遍历二叉查找树
  122. 10.3 在二叉查找树上进行查找
  123. 10.3.1 查找最小值和最大值
  124. 10.3.2 查找给定值
  125. 10.4 从二叉查找树上删除节点
  126. 10.5 计数
  127. 练习
  128. 第 11 章 图和图算法
  129. 11.1 图的定义
  130. 11.2 用图对现实中的系统建模
  131. 11.3 图类
  132. 11.3.1 表示顶点
  133. 11.3.2 表示边
  134. 11.3.3 构建图
  135. 11.4 搜索图
  136. 11.4.1 深度优先搜索
  137. 11.4.2 广度优先搜索
  138. 11.5 查找最短路径
  139. 11.5.1 广度优先搜索对应的最短路径
  140. 11.5.2 确定路径
  141. 11.6 拓扑排序
  142. 11.6.1 拓扑排序算法
  143. 11.6.2 实现拓扑排序算法
  144. 11.7 练习
  145. 第 12 章 排序算法
  146. 12.1 数组测试平台
  147. 生成随机数据
  148. 12.2 基本排序算法
  149. 12.2.1 冒泡排序
  150. 12.2.2 选择排序
  151. 12.2.3 插入排序
  152. 12.2.4 基本排序算法的计时比较
  153. 12.3 高级排序算法
  154. 12.3.1 希尔排序
  155. 计算动态间隔序列
  156. 12.3.2 归并排序
  157. 1. 自顶向下的归并排序
  158. 2. 自底向上的归并排序
  159. 12.3.3 快速排序
  160. 快速排序的算法和伪代码
  161. 12.4 练习
  162. 第 13 章 检索算法
  163. 13.1 顺序查找
  164. 13.1.1 查找最小值和最大值
  165. 13.1.2 使用自组织数据
  166. 13.2 二分查找算法
  167. 计算重复次数
  168. 13.3 查找文本数据
  169. 13.4 练习
  170. 第 14 章 高级算法
  171. 14.1 动态规划
  172. 14.1.1 动态规划实例:计算斐波那契数列
  173. 14.1.2 寻找最长公共子串
  174. 14.1.3 背包问题:递归解决方案
  175. 14.1.4 背包问题:动态规划方案
  176. 14.2 贪心算法
  177. 14.2.1 第一个贪心算法案例:找零问题
  178. 14.2.2 背包问题的贪心算法解决方案
  179. 14.3 练习
  180. 封面介绍
  181. 看完了
载入中

热门划线

喜欢这本书的人也喜欢