本書以圖解的方式講述數據結構及其算法,力求簡潔明瞭地闡述複雜的算法理論,以C+作為描述語言解析算法的執行過程,以大量的範例程式來展示數據結構的使用及其相關算法的具體實現。數據結構是計算機專業的核心課程之一,也是編程愛好者程式設計的重要基礎。
本書內容包含這門必修課的完整知識體系:數組、鏈表、堆疊、佇列、樹、圖等數據結構,以及基於這些數據結構的各類算法等。為了教學的需要,每章都提供了豐富的課後習題及詳細的參考答案。本書圖文並茂,文字簡潔、清晰,範例豐富、可操作性強,並配有視頻教學微信掃碼閱讀,PPT課件、範例程式原始程式碼、課後習題與參考答案和數據結構專有名詞索引電子版下載,適合學習數據結構和算法的讀者作為自學參考書,也適合作為高等院校計算機及信息相關專業的教材。
第1章 數據結構導論
1.1 數據結構的定義
1.1.1 數據與信息
1.1.2 數據的特性
1.1.3 數據結構的應用
1.2 算法
1.3 常見算法簡介
1.3.1 分治法
1.3.2 遞迴法
1.3.3 反覆運算法
1.3.4 枚舉法
1.3.5 貪心法
1.4 認識程式設計
1.4.1 程式開發流程
1.4.2 結構化程式設計
1.4.3 物件導向程式設計
1.5 算法性能的分析
1.5.1 Big-Oh
1.5.2 Ω (omega)
1.5.3 θ (theta)
本章習題
第2章 數組結構
2.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 數組與多項式
本章習題
第3章 鏈表
3.1 動態分配記憶體
3.1.1 C++的動態分配變數
3.1.2 動態分配數組
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 環形鏈表中節點的刪除