数据结构与算法JavaScript描述

出版日期:2014-8
ISBN:9787115363390
作者:[美] Michael McMillan
页数:216页

内容概要

作者简介:
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产品设计、可用性实施,热爱标准化。

书籍目录

推荐序  XI
前言  XII
第1章 JavaScript的编程环境和模型  1
1.1 JavaScript环境  1
1.2 JavaScript编程实践  2
1.2.1 声明和初始化变量  3
1.2.2 JavaScript中的算术运算和数学库函数  3
1.2.3 判断结构  4
1.2.4 循环结构  6
1.2.5 函数  7
1.2.6 变量作用域  7
1.2.7 递归  9
1.3 对象和面向对象编程  10
1.4 小结  11
第2章 数组  13
2.1 JavaScript中对数组的定义  13
2.2 使用数组  13
2.2.1 创建数组  14
2.2.2 读写数组  15
2.2.3 由字符串生成数组  15
2.2.4 对数组的整体性操作  16
2.3 存取函数  17
2.3.1 查找元素  17
2.3.2 数组的字符串表示  18
2.3.3 由已有数组创建新数组  18
2.4 可变函数  19
2.4.1 为数组添加元素  19
2.4.2 从数组中删除元素  20
2.4.3 从数组中间位置添加和删除元素  21
2.4.4 为数组排序  21
2.5 迭代器方法  22
2.5.1 不生成新数组的迭代器方法  22
2.5.2 生成新数组的迭代器方法  25
2.6 二维和多维数组  27
2.6.1 创建二维数组  27
2.6.2 处理二维数组的元素  28
2.6.3 参差不齐的数组  29
2.7 对象数组  30
2.8 对象中的数组  31
2.9 练习  32
第3章 列表  33
3.1 列表的抽象数据类型定义  33
3.2 实现列表类  34
3.2.1 append:给列表添加元素  35
3.2.2 remove:从列表中删除元素  35
3.2.3 find:在列表中查找某一元素  35
3.2.4 length:列表中有多少个元素  36
3.2.5 toString:显示列表中的元素  36
3.2.6 insert:向列表中插入一个元素  37
3.2.7 clear:清空列表中所有的元素  37
3.2.8 contains:判断给定值是否在列表中  37
3.2.9 遍历列表  38
3.3 使用迭代器访问列表  39
3.4 一个基于列表的应用  40
3.4.1 读取文本文件  40
3.4.2 使用列表管理影碟租赁  41
3.5 练习  44
第4章 栈  45
4.1 对栈的操作  45
4.2 栈的实现  46
4.3 使用Stack类  48
4.3.1 数制间的相互转换  49
4.3.2 回文  50
4.3.3 递归演示  51
4.4 练习  52
第5章 队列  53
5.1 对队列的操作  53
5.2 一个用数组实现的队列  54
5.3 使用队列:方块舞的舞伴分配问题  57
5.4 使用队列对数据进行排序  61
5.5 优先队列  63
5.6 练习  65
第6章 链表  67
6.1 数组的缺点  67
6.2 定义链表  67
6.3 设计一个基于对象的链表  69
6.3.1 Node类  69
6.3.2 LinkedList类  69
6.3.3 插入新节点  69
6.3.4 从链表中删除一个节点  71
6.4 双向链表  74
6.5 循环链表  78
6.6 链表的其他方法  79
6.7 练习  79
第7章 字典  81
7.1 Dictionary类  81
7.2 Dictionary类的辅助方法  83
7.3 为Dictionary类添加排序功能  85
7.4 练习  86
第8章 散列  87
8.1 散列概览  87
8.2 HashTable类  88
8.2.1 选择一个散列函数  88
8.2.2 一个更好的散列函数  91
8.2.3 散列化整型键  93
8.2.4 对散列表排序、从散列表中取值  95
8.3 碰撞处理  96
8.3.1 开链法  96
8.3.2 线性探测法  99
8.4 练习  100
第9章 集合  101
9.1 集合的定义、操作和属性  101
9.1.1 集合的定义  101
9.1.2 对集合的操作  102
9.2 Set类的实现  102
9.3 更多集合操作  104
9.4 练习  107
第10章 二叉树和二叉查找树  109
10.1 树的定义  109
10.2 二叉树和二叉查找树  111
10.2.1 实现二叉查找树  111
10.2.2 遍历二叉查找树  113
10.3 在二叉查找树上进行查找  116
10.3.1 查找最小值和最大值  116
10.3.2 查找给定值  117
10.4 从二叉查找树上删除节点  118
10.5 计数  120
10.6 练习  123
第11章 图和图算法  125
11.1 图的定义  125
11.2 用图对现实中的系统建模  127
11.3 图类  127
11.3.1 表示顶点  127
11.3.2 表示边  127
11.3.3 构建图  128
11.4 搜索图  130
11.4.1 深度优先搜索  130
11.4.2 广度优先搜索  133
11.5 查找最短路径  135
11.5.1 广度优先搜索对应的最短路径  135
11.5.2 确定路径  135
11.6 拓扑排序  137
11.6.1 拓扑排序算法  137
11.6.2 实现拓扑排序算法  137
11.7 练习  141
第12章 排序算法  143
12.1 数组测试平台  143
12.2 基本排序算法  145
12.2.1 冒泡排序  145
12.2.2 选择排序  148
12.2.3 插入排序  150
12.2.4 基本排序算法的计时比较  151
12.3 高级排序算法  153
12.3.1 希尔排序  153
12.3.2 归并排序  158
12.3.3 快速排序  163
12.4 练习  167
第13章 检索算法  169
13.1 顺序查找  169
13.1.1 查找最小值和最大值  172
13.1.2 使用自组织数据  175
13.2 二分查找算法  177
13.3 查找文本数据  183
13.4 练习  185
第14章 高级算法  187
14.1 动态规划  187
14.1.1 动态规划实例:计算斐波那契数列  188
14.1.2 寻找最长公共子串  191
14.1.3 背包问题:递归解决方案  194
14.1.4 背包问题:动态规划方案  195
14.2 贪心算法  196
14.2.1 第一个贪心算法案例:找零问题  196
14.2.2 背包问题的贪心算法解决方案  197
14.3 练习  199
封面介绍  200

作者简介

通过本书的学习,读者将能自如地选择最合适的数据结构与算法,并在JavaScript开发中懂得权衡使用。此外,本书也概述了与数据结构与算法相关的JavaScript特性。
本书主要内容如下。
数组和列表:最常用的数据结构。
栈和队列:与列表类似但更复杂的数据结构。
链表:如何通过它们克服数组的不足。
字典:将数据以键-值对的形式存储。
散列:适用于快速查找和检索。
集合:适用于存储只出现一次的元素。
二叉树:以层级的形式存储数据。
图和图算法:网络建模的理想选择。
算法:包括排序或搜索数据的算法。
高级算法:动态规划和贪心算法。


 数据结构与算法JavaScript描述下载 更多精彩书评



发布书评

 
 


精彩书评 (总计4条)

  •     http://www.zhihu.com/question/24763889知乎上有人开了个帖子,询问大家对这本书的意见,作为译者之一,以下是我的一些看法。我是本书的译者之一,这本书缺点很多:1. 内容浅尝辄止,对于学过数据结构和算法的人来说,没什么看头。2. 原书错误太多,包括拼写、表达,代码,甚至有些概念性错误,这点从原书的勘误列表就可看出:http://www.oreilly.com/catalog/errata.csp?isbn=06369200295573. 原书语言干巴巴的,算是我读过的英文技术书籍里比较枯燥的。但是,这本书也不是一无是处:1. 它覆盖了常用的基本数据结构,和严蔚敏那本书的广度差不多,如果读者只会JavaScript语言,算是一本不错的入门书,而且据我所知,拿JavaScript讲数据结构的,目前只此一本。2. 书中很多例子来源于常见的一些面试题目,算是与时俱进。3. 我和另外一位译者翻译时纠正了原书中的错误。总体上我给此书打3星,翻译时将那么多数据结构从头复习了一遍,感觉还是挺开心的,另外还在本书中知道了#约瑟夫环#原来有一个相当凄美的故事。传 说在公元1世纪的犹太战争中,犹太历史学家弗拉维奥•约瑟夫斯和他的40个同胞被罗马士兵包围。犹太士兵决定宁可自杀也不做俘虏,于是商量出了一个自杀方 案。他们围成一个圈,从一个人开始,数到第三个人时将第三个人杀死,然后再数,直到杀光所有人。约瑟夫和另外一个人决定不参加这个疯狂的游戏,他们快速地 计算出了两个位置,站在那里得以幸存。写一段程序将n个人围成一圈,并且第m个人会被杀掉,计算一圈人中哪两个人最后会存活。使用循环链表解决该问题。
  •     1. 一星给原作者辛苦2. 二星给译者辛苦3. 作为前端可以作为回顾数据结构和算法的书,初学者可看看,牛逼人可翻翻,太牛的人估计会搂一眼;评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了评论太短了
  •     对于工作中的实际运用不大。最简单的介绍了数据结构的概念,浅显易懂,非常适合初学者。电子书有很多错误。封装了很多数组的方法,非常适合前端的初学者看。但是,相对于数据结构来说,内容还是太简单了。

精彩短评 (总计41条)

  •     虽然有些简单但还是很必要的
  •     代码质量差,内容简单
  •     底层没讲,搞了一些简单的用法就出书了。不负责任,小学生入门比较合适。外加,代码实在不严谨,各种隐患问题。而且代码的错误特别多。。。
  •     用JavaScript语言描述基本的数据结构与算法,既学习了JavaScript又复习了数据结构与算法的思想,不错
  •     代码质量真心不高
  •     王群锋就是我啦。。。
  •     js 中级,数据结构入门
  •     比较适合前端初学者去看,封装了很多数组的方法,但是,数据结构方面的知识比较浅显,不过也容易看懂
  •     对于我这样前端工程师入门还是不错的,为接下来打好基础,但是书中许多代码有凑数的嫌疑,而且有些验证代码写错了...比如最后的动态规划背包问题,还好小问题不影响理解
  •     #图灵PDF# 其实 mark 这本书的唯一目的是显 low ……= = 然后里面的样例代码实现很一般啊~ > <
  •     讲的东西比较弱。书很薄,只有不到200页,代码占大部分。而且代码写的很弱。学过数据结构的很容易就能发现其中的BUG,不推荐
  •     书中代码好多错误。
  •     讲的比较浅显,适合学习过数据结构与算法,想了解JavaScript实现的人阅读
  •     不太严谨,概览
  •     有人买了不想要吗...二手转给我吧 ,要正版的
  •     这本书的翻译是合格的。内容比较基础,给出的代码实现也是入门级的,有少部分例子有bug。不过js算法书比较罕见,这本书用来入门没问题。
  •     比较简单,不够深入
  •     不枉参与翻译。
  •     教你如何封装Array系列。。。
  •     然而读完并没什么收获。
  •     这也能叫算法书?
  •     一般,觉得数据结构的学习还是不要以js作为例子了,因为作为一个高级语言,很多数据结构实际上在语言层面已经实现了,很多例子都毫无意义。
  •     代码质量不高,还有不少错误
  •     2016.15 js的算法书很少见,介绍了常用算法的js实现,出发点很不错,数据结构和算法也是大部分前端的短板,但是这本书感觉太敷衍了,代码也有很多错误,很多算法的底层也没介绍 稀里糊涂直接贴代码
  •     几个排序算法以后面试的时候可能用得着。手头已经有好几本数据结构有关的书,这本书不该买。
  •     看这书评价不太好,不过对于我这种数据结构算法渣来说,够了~
  •     错误比较多 内容比较基础 课后习题答案不好找 第一本用js描述还是可以的
  •     算法的简单科普,示例的错误太多
  •     请作者写这些垃圾代码前自己跑一遍,没研究清楚,就不要拿出来误导别人。
  •     一般
  •     错误有点多。。。。
  •     书真的很差,不过看来是原作者的问题 1.不严谨,使用了很多不规范的写法 2.写法繁琐,使用了很多没必要且繁琐的方法 3.仅能做了解使用,无法学到可以实际使用的内容
  •     1.目前读过动物书中质量最差的一本,太多错误和不规范的写法,后来发现图灵社区达几页的勘误。2.不过算法描述都还是清晰的,可以自己去实现,虽然书上有些代码都是错的。3.总的来说是值得一读的,思想是关键,不过译者都只给自己3分,那~~
  •     还不错吧
  •     非常不错 我在图灵社区买的 然后分享了
  •     几个排序算法以后面试的时候可能用得着。手头已经有好几本数据结构有关的书,这本书不该买。#说无用其实有点担心辜负了臭臭兄的一片好意#
  •     JavaScript 作为一切皆对象的语言,一个用了 10 天就开发出来的语言,在数据结构上自然表现的很奇怪,例如连 Map 这么重要的数据结构都没有,还需要自己来实现。 如果不是计算机科班生,又没有了解过数据结构及算法相关的内容,这本书是很合适的。 如果已经了解了各种数据结构,想简单的看一下在 JavaScript 中能够以什么样的形式写出来,这本书也是合适的。
  •     出了不少低级错误, 显然不是一本作者用心写的书籍,估计都没有校勘。通过这本书只能学习到简单的数据结构。错误实在太多, 改为一星。
  •     很适合前端学习,代码确实存在一些小问题,不过影响不大。书很薄,一天可以看好多遍的那种,自己都实现一遍的话,还是蛮有收获。
  •     跟着敲了一遍。感觉智商余额不足了。
  •     适合算法入门,但是里面好多错误啊!
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024