
0人評分過此書
圖解資料結構:使用JavaScript
JavaScript是這幾年快速竄紅的程式語言,但市面上以JavaScript來實作資料結構理論的書籍較為缺乏,本書是以JavaScript程式語言實作來解說資料結構概念的入門書,內容淺顯易懂,藉由豐富的圖例來闡述基本概念及應用,並將重要理論、演算法做最詳實的詮釋及列舉,引領讀者集中焦點進入資料結構的學習領域。
每章重要理論均有範例實作,書中的演算法儘量不以虛擬碼來說明,而以JavaScript語言來展現,並附有完整的範例程式下載,讀者可以依照學習進度作練習,除此之外,還有配合各章教學內容的練習題目,讓讀者測試自己的學習成果。附錄更提供「開發環境與JavaScript快速入門」,及資料結構使用JavaScript程式除錯經驗分享,相信能讓您對這門基礎學問有更深更完整的認識。
【本書特色】
◎內容架構完整,邏輯清楚,採用豐富的圖例來闡述基本觀念及應用,有效提高可讀性。
◎以JavaScript語言實作資料結構中的重要理論,以範例程式說明資料結構的內涵。
◎強調做中學,提供書中範例完整程式檔,給予最完整的支援,加深學習的記憶。
◎JavaScript程式除錯經驗分享,收集各種錯誤訊息的解決建議。
每章重要理論均有範例實作,書中的演算法儘量不以虛擬碼來說明,而以JavaScript語言來展現,並附有完整的範例程式下載,讀者可以依照學習進度作練習,除此之外,還有配合各章教學內容的練習題目,讓讀者測試自己的學習成果。附錄更提供「開發環境與JavaScript快速入門」,及資料結構使用JavaScript程式除錯經驗分享,相信能讓您對這門基礎學問有更深更完整的認識。
【本書特色】
◎內容架構完整,邏輯清楚,採用豐富的圖例來闡述基本觀念及應用,有效提高可讀性。
◎以JavaScript語言實作資料結構中的重要理論,以範例程式說明資料結構的內涵。
◎強調做中學,提供書中範例完整程式檔,給予最完整的支援,加深學習的記憶。
◎JavaScript程式除錯經驗分享,收集各種錯誤訊息的解決建議。
-
Chapter 1 資料結構導論
-
1-1 資料結構的定義
-
1-1-1 資料與資訊
-
1-1-2 資料的特性
-
1-1-3 資料結構的應用
-
-
1-2 演算法
-
1-2-1 演算法的條件
-
-
1-3 認識程式設計
-
1-3-1 程式開發流程
-
1-3-2 結構化程式設計
-
1-3-3 物件導向程式設計
-
-
1-4 演算法效能分析
-
1-4-1 Big-oh
-
1-4-2 Ω(omega)
-
1-4-3 θ(theta)
-
-
-
Chapter 2 陣列結構
-
2-1 線性串列簡介
-
2-1-1 儲存結構簡介
-
-
2-2 認識陣列
-
2-2-1 二維陣列
-
2-2-2 三維陣列
-
2-2-3 n 維陣列
-
-
2-3 矩陣
-
2-3-1 矩陣相加
-
2-3-2 矩陣相乘
-
2-3-3 轉置矩陣
-
2-3-4 稀疏矩陣
-
2-3-5 上三角形矩陣
-
2-3-6 下三角形矩陣
-
2-3-7 帶狀矩陣
-
-
2-4 陣列與多項式
-
2-4-1 認識多項式
-
-
-
Chapter 3 鏈結串列
-
3-1 單向鏈結串列
-
3-1-1 建立單向鏈結串列
-
3-1-2 走訪單向鏈結串列
-
3-1-3 單向串列插入新節點
-
3-1-4 單向串列刪除節點
-
3-1-5 單向串列的反轉
-
3-1-6 單向串列的連結功能
-
3-1-7 多項式串列表示法
-
-
3-2 環狀鏈結串列
-
3-2-1 環狀鏈結串列的建立與走訪
-
3-2-2 環狀鏈結串列的插入新節點
-
3-2-3 環狀串列的刪除節點
-
3-2-4 環狀串列的連結
-
3-2-5 環狀串列與稀疏矩陣表示法
-
-
3-3 雙向鏈結串列
-
3-3-1 雙向鏈結串列的建立與走訪
-
3-3-2 雙向鏈結串列加入新節點
-
3-3-3 雙向鏈結串列刪除節點
-
-
-
Chapter 4 堆疊
-
4-1 堆疊簡介
-
4-1-1 陣列實作堆疊
-
4-1-2 鏈結串列實作堆疊
-
-
4-2 堆疊的應用
-
4-2-1 遞迴演算法
-
4-2-2 河內塔問題
-
4-2-3 老鼠走迷宮
-
4-2-4 八皇后問題
-
-
4-3 算術運算式的表示法
-
4-3-1 中序轉為前序與後序
-
4-3-2 前序與後序轉為中序
-
4-3-3 中序表示法求值
-
4-3-4 前序法的求值運算
-
4-3-5 後序法的求值運算
-
-
-
Chapter 5 佇列
-
5-1 認識佇列
-
5-1-1 佇列的工作運算
-
5-1-2 陣列實作佇列
-
5-1-3 鏈結串列實作佇列
-
-
5-2 佇列的應用
-
5-2-1 環狀佇列
-
5-2-2 雙向佇列
-
5-2-3 優先佇列
-
-
-
Chapter 6 樹狀結構
-
6-1 樹的基本觀念
-
6-1-1 樹專有名詞簡介
-
-
6-2 二元樹簡介
-
6-2-1 二元樹的定義
-
6-2-2 特殊二元樹簡介
-
-
6-3 二元樹儲存方式
-
6-3-1 一維陣列表示法
-
6-3-2 鏈結串列表示法
-
-
6-4 二元樹走訪
-
6-4-1 中序走訪
-
6-4-2 後序走訪
-
6-4-3 前序走訪
-
6-4-4 節點的插入與刪除
-
6-4-5 二元運算樹
-
-
6-5 引線二元樹
-
6-5-1 二元樹轉為引線二元樹
-
-
6-6 樹的二元樹表示法
-
6-6-1 樹化為二元樹
-
6-6-2 二元樹轉換成樹
-
6-6-3 樹林化為二元樹
-
6-6-4 二元樹轉換成樹林
-
6-6-5 樹與樹林的走訪
-
6-6-6 決定唯一二元樹
-
-
6-7 最佳化二元搜尋樹
-
6-7-1 延伸二元樹
-
6-7-2 霍夫曼樹
-
6-7-3 平衡樹
-
-
6-8 B 樹
-
6-8-1 B 樹的定義
-
-
-
Chapter 7 圖形結構
-
7-1 圖形簡介
-
7-1-1 尤拉環與尤拉鏈
-
7-1-2 圖形的定義
-
7-1-3 無向圖形
-
7-1-4 有向圖形
-
-
7-2 圖形的資料表示法
-
7-2-1 相鄰矩陣法
-
7-2-2 相鄰串列法
-
7-2-3 相鄰複合串列法
-
7-2-4 索引表格法
-
-
7-3 圖形的走訪
-
7-3-1 先深後廣法
-
7-3-2 先廣後深搜尋法
-
-
7-4 擴張樹
-
7-4-1 DFS 擴張樹及BFS 擴張樹
-
7-4-2 最小花費擴張樹
-
7-4-3 Kruskal 演算法
-
-
7-5 圖形最短路徑
-
7-5-1 單點對全部頂點
-
7-5-2 兩兩頂點間的最短路徑
-
-
7-6 AOV 網路與拓樸排序
-
7-6-1 拓樸序列簡介
-
-
7-7 AOE 網路
-
7-7-1 臨界路徑
-
-
-
Chapter 8 排序
-
8-1 排序簡介
-
8-1-1 排序的分類
-
8-1-2 排序演算法分析
-
-
8-2 內部排序法
-
8-2-1 氣泡排序法
-
8-2-2 選擇排序法
-
8-2-3 插入排序法
-
8-2-4 謝耳排序法
-
8-2-5 合併排序法
-
8-2-6 快速排序法
-
8-2-7 堆積排序法
-
8-2-8 基數排序法
-
-
-
Chapter 9 搜尋
-
9-1 常見的搜尋方法
-
9-1-1 循序搜尋法
-
9-1-2 二分搜尋法
-
9-1-3 內插搜尋法
-
9-1-4 費氏搜尋法
-
-
9-2 雜湊搜尋法
-
9-2-1 雜湊法簡介
-
-
9-3 常見的雜湊函數
-
9-3-1 除法
-
9-3-2 中間平方法
-
9-3-3 折疊法
-
9-3-4 數位分析法
-
-
9-4 碰撞與溢位問題的處理
-
9-4-1 線性探測法
-
9-4-2 平方探測法
-
9-4-3 再雜湊法
-
9-4-4 鏈結串列法
-
-
-
Appendix A 開發環境與JavaScript 快速入門
-
A-1 JavaScript 執行環境
-
A-2 選擇程式的文字編輯器
-
A-3 基本資料處理
-
A-3-1 程式敘述與原生型別
-
A-3-2 數值資料型態
-
A-3-3 林資料型態
-
A-3-4 字串資料型態
-
A-3-5 Undefined(未定義)
-
A-3-6 null(空值)
-
-
A-4 變數宣告與資料型別轉換
-
A-4-1 使用var 關鍵字宣告變數
-
A-4-2 使用let 關鍵字宣告變數
-
A-4-3 使用const 關鍵字宣告常數
-
A-4-4 變數名稱的限制
-
A-4-5 強制轉換型別
-
-
A-5 輸出與輸入指令
-
A-5-1 輸出console.log 與process.stdout.write
-
A-5-2 輸出跳脫字元
-
A-5-3 輸入prompt 指令
-
-
A-6 運算子與運算式
-
A-6-1 算術運算子
-
A-6-2 複合指定運算子
-
A-6-3 關係運算子
-
A-6-4 邏輯運算子
-
A-6-5 運算子優先順序
-
-
A-7 流程控制
-
A-7-1 選擇性結構
-
A-7-2 for 迴圈
-
A-7-3 while 迴圈
-
A-7-4 do...while 迴圈
-
A-7-5 break 和continue 敘述
-
-
A-8 陣列宣告與實作
-
A-8-1 陣列宣告
-
A-8-2 取用陣列元素的值
-
-
A-9 函式定義與呼叫
-
A-9-1 函式的定義與呼叫
-
A-9-2 函式參數
-
A-9-3 函式回傳值
-
A-9-4 箭頭函式(Arrow function)
-
A-9-5 全域變數與區域變數
-
-
A-10 物件的屬性與方法
-
A-10-1 認識物件導向程式設計
-
A-10-2 在JavaScript 使用物件
-
-
-
Appendix B 資料結構使用JavaScript 程式除錯實錄
-
B-1 print 格式化字串設定錯誤
-
B-2 區域變數在未指派值前被引用
-
B-3 串列索引超出範圍的錯誤
-
B-4 忘了加new 指令
-
B-5 索引不當使用的資料型態錯誤
-
B-6 將指令放在不當區塊位置所造成的錯誤
-
B-7 類別內方法的宣告方式錯誤
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分