內容簡介
資料結構是有志從事資訊工作的專業人員,不得不重視的一門基礎課程。對於第一次接觸資料結構課程的初學者來說,過多的內容及不清楚的表達常是造成學習障礙的最主要原因。本書是以C# 程式語言實作來解說資料結構概念的入門
書,內容淺顯易懂,藉由豐富圖例來闡述基本概念,將重要理論、演算法做最意簡言明的詮釋及舉例,同時配合完整的範例程式碼,期能透過實作來熟悉資料結構。因此,這是一本兼具內容及專業的資料結構教學用書。
【本書特色】
※內容架構完整,邏輯清楚,採用豐富的圖例來闡述基本觀念及應用,有效提高可讀性。
※以C# 語言實作資料結構中的重要理論,以範例程式說明資料結構的內涵。
※強調邊作邊學:提供書中範例完整程式檔,給予最完整的支援,加深學習記憶。
※驗收學習成果:參閱國家考試題型,設計難易適中的習題,提供進一步演練。
【重點主題】
◆ 資料結構入門與演算法
◆ 陣列結構 / 串列結構
◆ 堆疊 / 佇列
◆ 樹狀結構 / 圖形結構
◆ 排序演算法
◆ 搜尋演算法與雜湊函數
◆ 資料結構專有名詞
書,內容淺顯易懂,藉由豐富圖例來闡述基本概念,將重要理論、演算法做最意簡言明的詮釋及舉例,同時配合完整的範例程式碼,期能透過實作來熟悉資料結構。因此,這是一本兼具內容及專業的資料結構教學用書。
【本書特色】
※內容架構完整,邏輯清楚,採用豐富的圖例來闡述基本觀念及應用,有效提高可讀性。
※以C# 語言實作資料結構中的重要理論,以範例程式說明資料結構的內涵。
※強調邊作邊學:提供書中範例完整程式檔,給予最完整的支援,加深學習記憶。
※驗收學習成果:參閱國家考試題型,設計難易適中的習題,提供進一步演練。
【重點主題】
◆ 資料結構入門與演算法
◆ 陣列結構 / 串列結構
◆ 堆疊 / 佇列
◆ 樹狀結構 / 圖形結構
◆ 排序演算法
◆ 搜尋演算法與雜湊函數
◆ 資料結構專有名詞
內容目錄
Chapter 1 資料結構入門與演算法
1-1 資料結構的定義
1-1-1 資料與資訊
1-1-2 資料的特性
1-1-3 資料結構的應用
1-2 演算法
1-2-1 演算法的條件
1-2-2 演算法的表現方式
1-3 常見演算法簡介
1-3-1 分治法
1-3-2 遞迴法
1-3-3 動態規劃法
1-3-4 疊代法
1-3-5 貪心法
1-3-6 枚舉法
1-3-7 巴斯卡三角形演算法
1-3-8 質數求解演算法
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 三維陣列
2-2-4 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-2 單向鏈結串列
3-2-1 建立單向鏈結串列
3-2-2 單向鏈結串列刪除節點
3-2-3 單向鏈結串列插入新節點
3-2-4 單向鏈結串列的反轉
3-2-5 單向鏈結串列的連結
3-2-6 多項式串列表示法
3-3 環狀鏈結串列
3-3-1 環狀鏈結串列的節點插入
3-3-2 環狀鏈結串列的節點刪除
3-3-3 環狀串列的連結
3-3-4 稀疏矩陣串列表示法
3-4 雙向鏈結串列
3-4-1 雙向鏈結串列的定義
3-4-2 雙向鏈結串列的節點插入
3-4-3 雙向鏈結串列的節點刪除
Chapter 4 堆疊
4-1 堆疊簡介
4-1-1 陣列實作堆疊
4-1-2 串列實作堆疊
4-2 堆疊的應用
4-2-1 河內塔演算法
4-2-2 回溯法-老鼠走迷宮
4-2-3 八皇后問題
4-3 算術運算式的求值法
4-3-1 中序表示法求值
4-3-2 前序表示法求值
4-3-3 後序表示法求值
4-4 中序法轉換為前序法
4-4-1 二元樹法
4-4-2 括號法
4-4-3 堆疊法
4-5 前序與後序式轉換成中序式
4-5-1 括號法
4-5-2 堆疊法
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-5-2 二元搜尋樹
6-5-3 引線二元樹
6-6 樹的二元樹表示法
6-6-1 樹化為二元樹
6-6-2 樹林化為二元樹
6-6-3 樹與樹林的走訪
6-6-4 決定唯一二元樹
6-7 最佳化二元搜尋樹
6-7-1 延伸二元樹
6-7-2 霍夫曼樹
6-8 平衡樹
6-8-1 平衡樹的定義
6-9 進階樹狀結構的應用
6-9-1 決策樹
6-9-2 B 樹
6-9-3 二元空間分割樹(BSP)
6-9-4 四元樹/八元樹
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 先深後廣法(DFS)
7-3-2 先廣後深搜尋法(BFS)
7-4 擴張樹簡介
7-4-1 DFS擴張樹及BFS擴張樹
7-4-2 最小花費擴張樹
7-4-3 Kruskal演算法
7-4-4 Prim演算法
7-5 圖形最短路徑
7-5-1 單點對全部頂點 - Dijkstra 演算法
7-5-2 兩兩頂點間的最短路徑 - Floyd 演算法
7-5-3 A*演算法
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 堆積排序法
8-2-9 基數排序法
8-3 外部排序法
8-3-1 直接合併排序法
8-3-2 k路合併法
8-3-3 多相合併法
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 鏈結串列法
9-4-5 雜湊法整合範例
附錄A 資料結構專有名詞索引
1-1 資料結構的定義
1-1-1 資料與資訊
1-1-2 資料的特性
1-1-3 資料結構的應用
1-2 演算法
1-2-1 演算法的條件
1-2-2 演算法的表現方式
1-3 常見演算法簡介
1-3-1 分治法
1-3-2 遞迴法
1-3-3 動態規劃法
1-3-4 疊代法
1-3-5 貪心法
1-3-6 枚舉法
1-3-7 巴斯卡三角形演算法
1-3-8 質數求解演算法
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 三維陣列
2-2-4 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-2 單向鏈結串列
3-2-1 建立單向鏈結串列
3-2-2 單向鏈結串列刪除節點
3-2-3 單向鏈結串列插入新節點
3-2-4 單向鏈結串列的反轉
3-2-5 單向鏈結串列的連結
3-2-6 多項式串列表示法
3-3 環狀鏈結串列
3-3-1 環狀鏈結串列的節點插入
3-3-2 環狀鏈結串列的節點刪除
3-3-3 環狀串列的連結
3-3-4 稀疏矩陣串列表示法
3-4 雙向鏈結串列
3-4-1 雙向鏈結串列的定義
3-4-2 雙向鏈結串列的節點插入
3-4-3 雙向鏈結串列的節點刪除
Chapter 4 堆疊
4-1 堆疊簡介
4-1-1 陣列實作堆疊
4-1-2 串列實作堆疊
4-2 堆疊的應用
4-2-1 河內塔演算法
4-2-2 回溯法-老鼠走迷宮
4-2-3 八皇后問題
4-3 算術運算式的求值法
4-3-1 中序表示法求值
4-3-2 前序表示法求值
4-3-3 後序表示法求值
4-4 中序法轉換為前序法
4-4-1 二元樹法
4-4-2 括號法
4-4-3 堆疊法
4-5 前序與後序式轉換成中序式
4-5-1 括號法
4-5-2 堆疊法
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-5-2 二元搜尋樹
6-5-3 引線二元樹
6-6 樹的二元樹表示法
6-6-1 樹化為二元樹
6-6-2 樹林化為二元樹
6-6-3 樹與樹林的走訪
6-6-4 決定唯一二元樹
6-7 最佳化二元搜尋樹
6-7-1 延伸二元樹
6-7-2 霍夫曼樹
6-8 平衡樹
6-8-1 平衡樹的定義
6-9 進階樹狀結構的應用
6-9-1 決策樹
6-9-2 B 樹
6-9-3 二元空間分割樹(BSP)
6-9-4 四元樹/八元樹
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 先深後廣法(DFS)
7-3-2 先廣後深搜尋法(BFS)
7-4 擴張樹簡介
7-4-1 DFS擴張樹及BFS擴張樹
7-4-2 最小花費擴張樹
7-4-3 Kruskal演算法
7-4-4 Prim演算法
7-5 圖形最短路徑
7-5-1 單點對全部頂點 - Dijkstra 演算法
7-5-2 兩兩頂點間的最短路徑 - Floyd 演算法
7-5-3 A*演算法
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 堆積排序法
8-2-9 基數排序法
8-3 外部排序法
8-3-1 直接合併排序法
8-3-2 k路合併法
8-3-3 多相合併法
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 鏈結串列法
9-4-5 雜湊法整合範例
附錄A 資料結構專有名詞索引
ISBN: 9786263334076