数据结构与算法JavaScript描述pdf

图书网 2018年9月7日15:49:2852.2K1
摘要

随着JavaScript成功走出客户端,在服务器端编程中得到日益广泛的应用,JavaScript程序员需要实现与C#或Java等传统面向对象编程语言相似的数据结构与算法。本书是用JavaScript描述数据结构与算法的开山之作,汇聚了作者多年的实战经验。这本实战指南通过丰富的示例,向读者透彻讲解了在JavaScript环境下,如何通过一系列存储机制(包括链表、栈、队列和图)高效地达到编程目的。

数据结构与算法JavaScript描述 内容简介

在过去几年中,JavaScript凭借Node.js和SpiderMonkey等平台,在服务器端编程中得到了广泛应用。JavaScript程序员因而迫切需要使用传统语言(比如C++和Java)提供的工具,包括传统的数据结构以及传统的排序和查找算法。《图灵程序设计丛书:数据结构与算法JavaScript描述》讨论在数组即对象、无处不在的全局变量、基于原型的对象模型等JavaScript语言的环境下,如何实现高效的数据结构和算法。

《图灵程序设计丛书:数据结构与算法JavaScript描述》适合JavaScript程序员以及对JavaScript语言感兴趣的学习者,特别是在学校中没有系统学习过计算机科学相关课程的“跨界”程序员。

数据结构与算法JavaScript描述 目录

推荐序

前言

第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 计数

10.6 练习

第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 归并排序

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 练习

封面介绍

数据结构与算法JavaScript描述 精彩文摘

1.2 JavaScript编程实践

本节将讨论如何使用JavaScript。我们知道,每个程序员编写程序的风格和惯例都不尽相同,因此在本书一开始,我想先说说我自己的编程风格和惯例,这样读者在后续章节中碰到更复杂一点的程序时,就不会感到疑惑了。本书并非一部JavaScript新手教程,而是语言基本结构使用方法指南。

1.2.1 声明和初始化变量

JavaScript中的变量默认是全局变量,严格地说,甚至不需要在使用前进行声明。如果对一个事先未予声明的JavaScript变量进行初始化,该变量就成了一个全局变量。但本书遵循C++和Java等编译型语言的习惯,在使用变量前先对其进行声明。这样做的好处是,声明的变量都是局部变量。本章稍后部分将详细讨论变量的作用域。

图书网:数据结构与算法JavaScript描述pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

  • 我的微信
  • 扫一扫加好友
  • weinxin
  • 微信公众号
  • 扫一扫关注
  • weinxin
深入理解JavaScript特性pdf 程序设计

深入理解JavaScript特性pdf

本书从实际开发角度介绍ES6及后续更新版本特性,以循序渐进、通俗易懂的方式讲解各种复杂的技术,比如异步控制流、声明对象及函数的使用等,并从实践角度提供了许多建议,既能帮助广大前端开...
漫画算法 小灰的算法之旅 Python篇pdf 程序设计

漫画算法 小灰的算法之旅 Python篇pdf

漫画算法 小灰的算法之旅 Python篇 作者:魏梦舒 漫画算法 小灰的算法之旅 Python篇 出版社:电子工业出版社 漫画算法 小灰的算法之旅 Python篇 内容简介 本书通过虚拟的主人公小灰的...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:5   其中:访客  5   博主  0
    • 123123
      123123 9

      学习

      • 123
        123 9

        学习

        • 兄台你好
          兄台你好 4

          看看这本书,很好

          • re
            re 9

            看看

            • 6951010101
              6951010101 0

              真的很喜欢这本书,对自己提升很大