Skip to content

tset3/book-data-structure-algorithm-js

 
 

Repository files navigation

数据结构与算法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 练习

About

《数据结构与算法javascript描述》 源代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%