当前位置:主页 > 计算机电子书 > javascript > 数据结构下载
数据结构与算法:JavaScript描述

数据结构与算法:JavaScript描述 PDF 清晰完整版

  • 更新:2021-12-15
  • 大小:21.6 MB
  • 类别:数据结构
  • 作者:Michael、McMillan
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

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

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

本书主要内容如下。

数组和列表:*常用的数据结构。

栈和队列:与列表类似但更复杂的数据结构。

链表:如何通过它们克服数组的不足。

字典:将数据以键-值对的形式存储。

散列:适用于快速查找和检索。

集合:适用于存储只出现一次的元素。

二叉树:以层级的形式存储数据。

图和图算法:网络建模的理想选择。

算法:包括排序或搜索数据的算法。

高级算法:动态规划和贪心算法。

内容简介

在过去的几年里,JavaScript一直依赖于Node.还有js SpiderMonkey等,已经广泛应用于服务器端编程。JavaScript程序员迫切需要使用传统语言(比如C和Java)提供工具,包括传统的数据结构和传统的排序和搜索算法。《数据结构与算法JavaScript描述》讨论数组作为对象、无处不在的全局变量、如何在基于原型的对象模型等JavaScript语言环境下实现高效的数据结构和算法。

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

目录

  • 推荐序
  • 前言
  • 第1章JavaScript的编程环境和模型
  • 1.1JavaScript环境
  • 1.2JavaScript编程实践
  • 1.2.1声明和初始化变量
  • 1.2.2JavaScript中的算术运算和数学库函数
  • 1.2.3判断结构
  • 1.2.4循环结构
  • 1.2.5函数
  • 1.2.6变量作用域
  • 1.2.7递归
  • 1.3对象和面向对象编程
  • 1.4小结
  • 第2章数组
  • 2.1JavaScript中对数组的定义
  • 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.1append:给列表添加元素
  • 3.2.2remove:从列表中删除元素
  • 3.2.3find:在列表中查找某一元素
  • 3.2.4length:列表中有多少个元素
  • 3.2.5toString:显示列表中的元素
  • 3.2.6insert:向列表中插入一个元素
  • 3.2.7clear:清空列表中所有的元素
  • 3.2.8contains:判断给定值是否在列表中
  • 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.1Node类
  • 6.3.2LinkedList类
  • 6.3.3插入新节点
  • 6.3.4从链表中删除一个节点
  • 6.4双向链表
  • 6.5循环链表
  • 6.6链表的其他方法
  • 6.7练习
  • 第7章字典
  • 7.1Dictionary类
  • 7.2Dictionary类的辅助方法
  • 7.3为Dictionary类添加排序功能
  • 7.4练习
  • 第8章散列
  • 8.1散列概览
  • 8.2HashTable类
  • 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.2Set类的实现
  • 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练习
  • 封面介绍

资源下载

资源下载地址1:https://pan.baidu.com/s/1YCZJvT1tlXpeIjmyGCGVKw

相关资源

网友留言

网友NO.28407
莘向明

几个排序算法以后面试的时候可能用得着。手头已经有好几本数据结构有关的书,这本书不该买。

网友NO.43075
党天成

底层没讲,搞了一些简单的用法就出书了。不负责任,小学生入门比较合适。外加,代码实在不严谨,各种隐患问题。

网友NO.24412
史翰音

感觉书中错误很多,另外很多内容不够深入了。

一个比较失望的点是,这本书有点像是数据结构与算法和JS的生硬结合,其实还比较期待一些更加符合JS习惯的做法,还有各个数据结构在JS下的高性能实现及性能测试。比如就很想看看 Typed Array 与数据结构的结合之类。

还是有所收获,但是不如预期的多,经常需要深入了解得自行查阅相关资料。总体读着感觉有点不值得。