本書首先介紹了JavaScript語言的基礎知識,接下來討論了數組、棧、佇列、鍊表、集合、字典、散列表、樹、圖等數據結構,之後探討了各種排序和搜尋算法,包括冒泡排序、選擇排序、插入排序、歸併排序、快速排序、順序搜尋、二分搜尋,還介紹了動態規劃和貪心算法等常用的高級算法及相關知識。
基本介紹
- 書名:學習JavaScript數據結構與算法
- 又名:Learning JavaScript Data Structures and Algorithms
- 作者:[巴西] 格羅納(Loiane Groner)
- 譯者:吳雙 / 鄧鋼 / 孫曉博 等
- ISBN:9787115404145
- 頁數:159
- 出版社:人民郵電出版社
- 出版時間:2015-10-1
- 裝幀:平裝
作者簡介,書籍目錄,第1 章 JavaScript 簡介,第2 章 數組,第3 章 棧,第4 章 佇列,第5 章 鍊表,第6 章 集合,第7 章 字典和散列表,第8 章 樹,第9 章 圖,第10 章 排序和搜尋算法,第11 章 算法補充知識,
作者簡介
作者:[巴西] 格羅納(Loiane Groner)
譯者:孫曉博 鄧鋼 吳雙 陳迪 袁源
Loiane Groner 花旗銀行軟體開發經理,負責海外項目的開發和團隊管理;原IBM公司系統分析師及團隊負責人;巴西坎皮納斯Java用戶組(CampinasJUG)領導者、聖埃斯皮里圖Java用戶組(ESJUG)協調人;巴西各大型技術會議特邀發言人;Sencha和Java技術布道者,通過部落格為軟體開發社區撰稿,發表關於IT職業發展和常用開發技術的文章和視頻。另著有《精通Ext JS》等書。
書籍目錄
第1 章 JavaScript 簡介
1.1 環境搭建
1.1.1 瀏覽器
1.1.2 使用Web 伺服器(XAMPP)
1.1.3 使用Node.js 搭建Web 伺服器
1.2 JavaScript 基礎
1.2.1 變數
1.2.2 操作符
1.2.3 真值和假值
1.2.4 相等操作符(==和===)
1.3 控制結構
1.3.1 條件語句
1.3.2 循環
1.4 函式
1.5 面向對象編程
1.6 調試工具
1.7 小結
第2 章 數組
2.1 為什麼用數組
2.2 創建和初始化數組
2.3 添加和刪除元素
2.4 二維和多維數組
2.5 JavaScript 的數組方法參考
2.5.1 數組合併
2.5.2 疊代器函式
2.5.3 搜尋和排序
2.5.4 輸出數組為字元串
2.6 小結
第3 章 棧
3.1 棧的創建
3.2 從十進制到二進制
3.3 小結 39
第4 章 佇列
4.1 創建佇列
4.1.1 完整的Queue 類
4.1.2 使用Queue 類
4.2 優先佇列
4.3 循環佇列——擊鼓傳花
4.4 小結
第5 章 鍊表
5.1 創建一個鍊表
5.1.1 向鍊表尾部追加元素
5.1.2 從鍊表中移除元素
5.1.3 在任意位置插入一個元素
5.1.4 實現其他方法
5.2 雙向鍊表
5.2.1 在任意位置插入一個新元素
5.2.2 從任意位置移除元素
5.3 循環鍊表
5.4 小結
第6 章 集合
6.1 創建一個集合
6.1.1 has(value)方法
6.1.2 add 方法
6.1.3 remove 和clear 方法
6.1.4 size 方法
6.1.5 values 方法
6.1.6 使用Set 類
6.2 集合操作
6.2.1 並集
6.2.2 交集
6.2.3 差集
6.2.4 子集
6.3 小結
第7 章 字典和散列表
7.1 字典
7.1.1 創建一個字典
7.1.2 使用Dictionary 類
7.2 散列表
7.2.1 創建一個散列表
7.2.2 使用HashTable 類
7.2.3 散列表和散列集合
7.2.4 處理散列表中的衝突
7.2.5 創建更好的散列函式
7.3 小結
第8 章 樹
8.1 樹的相關術語
8.2 二叉樹和二叉搜尋樹
8.2.1 創建BinarySearchTree 類
8.2.2 向樹中插入一個鍵
8.3 樹的遍歷
8.3.1 中序遍歷
8.3.2 先序遍歷
8.3.3 後序遍歷
8.4 搜尋樹中的值
8.4.1 搜尋最小值和最大值
8.4.2 搜尋一個特定的值
8.4.3 移除一個節點
8.5 更多關於二叉樹的知識
8.6 小結
第9 章 圖
9.1 圖的相關術語
9.2 圖的表示
9.2.1 鄰接矩陣
9.2.2 鄰接表
9.2.3 關聯矩陣
9.3 創建圖類
9.4 圖的遍歷
9.4.1 廣度優先搜尋
9.4.2 深度優先搜尋
9.5 小結
第10 章 排序和搜尋算法
10.1 排序算法
10.1.1 冒泡排序
10.1.2 選擇排序
10.1.3 插入排序
10.1.4 歸併排序
10.1.5 快速排序
10.2 搜尋算法
10.2.1 順序搜尋
10.2.2 二分搜尋
10.3 小結
第11 章 算法補充知識
11.1 遞歸
11.1.1 JavaScript 調用棧大小的限制
11.1.2 斐波那契數列
11.2 動態規劃
11.3 貪心算法
11.4 大O 表示法
11.4.1 理解大O 表示法
11.4.2 時間複雜度比較
11.5 用算法娛樂身心
11.6 小結
附錄A 時間複雜度速查表
致謝