书刊介绍
《数据结构与算法JavaScript描述》内容简介
通过本书的学习,读者将能自如地选择最合适的数据结构与算法,并在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产品设计、可用性实施,热爱标准化。作品目录
O'Reilly
Media,
Inc.介绍
业界评论
推荐序
前言
为什么要学习数据结构和算法
阅读本书需要的工具
本书组织结构
使用代码示例
Safari®
Books
Online
联系我们
致谢
第
1、章:
JavaScript的编程环境和模型
1.1、JavaScript环境
1.2、JavaScript编程实践
1.2.1、声明和初始化变量
1.2.2、JavaScript中的算术运算和数学库函数
1.2.3、判断结构
1.2.4、循环结构
1.2.5、函数
1.2.6、变量作用域
1.2.7、递归
1.3、对象和面向对象编程
1.4、小结
第
2、章:数组
2.1、JavaScript中对数组的定义
2.2、使用数组
2.2.1、创建数组
2.2.2、读写数组
2.2.3、由字符串生成数组
2.2.4、对数组的整体性操作
2.3、存取函数
2.3.1、查找元素
2.3.2、数组的字符串表示
2.3.3、由已有数组创建新数组
2.4、可变函数
2.4.1、为数组添加元素
2.4.2、从数组中删除元素
2.4.3、从数组中间位置添加和删除元素
2.4.4、为数组排序
2.5、迭代器方法
2.5.1、不生成新数组的迭代器方法
2.5.2、生成新数组的迭代器方法
2.6、二维和多维数组
2.6.1、创建二维数组
2.6.2、处理二维数组的元素
2.6.3、参差不齐的数组
2.7、对象数组
2.8、对象中的数组
2.9、练习
第
3、章:列表
3.1、列表的抽象数据类型定义
3.2、实现列表类
3.2.1、
append
:给列表添加元素
3.2.2、
remove
:从列表中删除元素
3.2.3、
find
:在列表中查找某一元素
3.2.4、
length
:列表中有多少个元素
3.2.5、
toString
:显示列表中的元素
3.2.6、
insert
:向列表中插入一个元素
3.2.7、
clear
:清空列表中所有的元素
3.2.8、
contains
:判断给定值是否在列表中
3.2.9、遍历列表
3.3、使用迭代器访问列表
3.4、一个基于列表的应用
3.4.1、读取文本文件
3.4.2、使用列表管理影碟租赁
3.5、练习
第
4、章:栈
4.1、对栈的操作
4.2、栈的实现
4.3、使用
Stack
类
4.3.1、数制间的相互转换
4.3.2、回文
4.3.3、递归演示
4.4、练习
第
5、章:队列
5.1、对队列的操作
5.2、一个用数组实现的队列
5.3、使用队列:方块舞的舞伴分配问题
5.4、使用队列对数据进行排序
5.5、优先队列
5.6、练习
第
6、章:链表
6.1、数组的缺点
6.2、定义链表
6.3、设计一个基于对象的链表
6.3.1、
Node
类
6.3.2、
LinkedList
类
6.3.3、插入新节点
6.3.4、从链表中删除一个节点
6.4、双向链表
6.5、循环链表
6.6、链表的其他方法
6.7、练习
第
7、章:
字典
7.1、
Dictionary
类
7.2、
Dictionary
类的辅助方法
7.3、为
Dictionary
类添加排序功能
7.4、练习
第
8、章:散列
8.1、散列概览
8.2、
HashTable
类
8.2.1、选择一个散列函数
8.2.2、一个更好的散列函数
8.2.3、散列化整型键
8.2.4、对散列表排序、从散列表中取值
8.3、碰撞处理
8.3.1、开链法
8.3.2、线性探测法
8.4、练习
第
9、章:集合
9.1、集合的定义、操作和属性
9.1.1、集合的定义
9.1.2、对集合的操作
9.2、
Set
类的实现
9.3、更多集合操作
9.4、练习
第
10、章:二叉树和二叉查找树
10.1、树的定义
10.2、二叉树和二叉查找树
10.2.1、实现二叉查找树
10.2.2、遍历二叉查找树
10.3、在二叉查找树上进行查找
10.3.1、查找最小值和最大值
10.3.2、查找给定值
10.4、从二叉查找树上删除节点
10.5、计数
练习
第
11、章:图和图算法
11.1、图的定义
11.2、用图对现实中的系统建模
11.3、图类
11.3.1、表示顶点
11.3.2、表示边
11.3.3、构建图
11.4、搜索图
11.4.1、深度优先搜索
11.4.2、广度优先搜索
11.5、查找最短路径
11.5.1、广度优先搜索对应的最短路径
11.5.2、确定路径
11.6、拓扑排序
11.6.1、拓扑排序算法
11.6.2、实现拓扑排序算法
11.7、练习
第
12、章:排序算法
12.1、数组测试平台
生成随机数据
12.2、基本排序算法
12.2.1、冒泡排序
12.2.2、选择排序
12.2.3、插入排序
12.2.4、基本排序算法的计时比较
12.3、高级排序算法
12.3.1、希尔排序
计算动态间隔序列
12.3.2、归并排序
1.
自顶向下的归并排序
2.
自底向上的归并排序
12.3.3、快速排序
快速排序的算法和伪代码
12.4、练习
第
13、章:检索算法
13.1、顺序查找
13.1.1、查找最小值和最大值
13.1.2、使用自组织数据
13.2、二分查找算法
计算重复次数
13.3、查找文本数据
13.4、练习
第
14、章:高级算法
14.1、动态规划
14.1.1、动态规划实例:计算斐波那契数列
14.1.2、寻找最长公共子串
14.1.3、背包问题:递归解决方案
14.1.4、背包问题:动态规划方案
14.2、贪心算法
14.2.1、第一个贪心算法案例:找零问题
14.2.2、背包问题的贪心算法解决方案
14.3、练习
封面介绍
看完了