數據結構與算法JavaScript描述 [電子書/PDF檔]

數據結構與算法JavaScript描述 [電子書/PDF檔]

數據結構與算法JavaScript描述 [電子書/PDF檔]


資料來源: https://github.com/oreillymedia/data_structures_and_algorithms_using_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 練習

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *