數據結構教程(Python語言描述)

數據結構教程(Python語言描述)

《數據結構教程(Python語言描述)》是清華大學出版社2020年出版圖書,作者李春葆,蔣林,李筱馳

基本介紹

  • 中文名:數據結構教程(Python語言描述)
  • 作者:李春葆,蔣林,李筱馳
  • 出版社:清華大學出版社
  • ISBN:9787302560289 
內容簡介,目錄,

內容簡介

本書系統地介紹了各種常用的數據結構以及查找和排序的各種算法,闡述了各種數據結構的邏輯關係、存儲表示及基本運算,並採用Python語言描述數據組織和算法實現,所有算法的程式均在Python3.7中調試通過。 全書既注重原理又注重實踐,配有大量圖表和示例,內容豐富,概念講解清楚,表達嚴謹,邏輯性強,語言精練,可讀性好。

目錄

第1章緒論
1.1什麼是數據結構
1.1.1數據結構的定義
1.1.2數據的邏輯結構
1.1.3數據的存儲結構
1.1.4數據的運算
1.1.5數據結構和數據類型
1.2算法及其描述
1.2.1什麼是算法
1.2.2算法描述
1.3Python簡介
1.3.1Python的標準數據類型
1.3.2列表的複製
1.3.3輸入/輸出和檔案操作
1.3.4Python程式設計
1.3.5Python中變數的作用域和垃圾回收
1.4算法分析
1.4.1算法的設計目標
1.4.2算法的時間性能分析
1.4.3算法的存儲空間分析
1.5數據結構的目標
1.6練習題
1.7上機實驗題
1.8LeetCode線上編程題
第2章線性表
2.1線性表的定義
2.1.1什麼是線性表
2.1.2線性表的抽象數據類型描述
2.2線性表的順序存儲結構
2.2.1順序表
2.2.2線性表的基本運算算法在順序表中的實現
2.2.3順序表的套用算法設計示例
2.3線性表的鏈式存儲結構
2.3.1鍊表
2.3.2單鍊表
2.3.3單鍊表的套用算法設計示例
2.3.4雙鍊表
2.3.5雙鍊表的套用算法設計示例
2.3.6循環鍊表
2.4順序表和鍊表的比較
2.5線性表的套用——兩個多項式相加
2.5.1問題描述
2.5.2問題求解
2.6練習題
2.7上機實驗題
2.7.1基礎實驗題
2.7.2套用實驗題
2.8LeetCode線上編程題
第3章棧和佇列
3.1棧
3.1.1棧的定義
3.1.2棧的順序存儲結構及其基本運算算法的實現
3.1.3順序棧的套用算法設計示例
3.1.4棧的鏈式存儲結構及其基本運算算法的實現
3.1.5鏈棧的套用算法設計示例
3.1.6棧的綜合套用
3.2佇列
3.2.1佇列的定義
3.2.2佇列的順序存儲結構及其基本運算算法的實現
3.2.3循環佇列的套用算法設計示例
3.2.4佇列的鏈式存儲結構及其基本運算算法的實現
3.2.5鏈隊的套用算法設計示例
3.2.6Python中的雙端佇列
3.2.7佇列的綜合套用
3.2.8優先佇列
3.3練習題
3.4上機實驗題
3.4.1基礎實驗題
3.4.2套用實驗題
3.5LeetCode線上編程題
第4章串和數組
4.1串
4.1.1串的基本概念
4.1.2串的存儲結構
4.1.3串的模式匹配
4.2數組
4.2.1數組的基本概念
4.2.2特殊矩陣的壓縮存儲
4.2.3稀疏矩陣
4.3練習題
4.4上機實驗題
4.4.1基礎實驗題
4.4.2套用實驗題
4.5LeetCode線上編程題
第5章遞歸
5.1什麼是遞歸
5.1.1遞歸的定義
5.1.2何時使用遞歸
5.1.3遞歸模型
5.1.4遞歸與數學歸納法
5.1.5遞歸的執行過程
5.1.6Python中遞歸函式的參數
5.1.7遞歸算法的時空分析
5.2遞歸算法的設計
5.2.1遞歸算法設計的步驟
5.2.2基於遞歸數據結構的遞歸算法設計
5.2.3基於歸納方法的遞歸算法設計
5.3練習題
5.4上機實驗題
5.4.1基礎實驗題
5.4.2套用實驗題
5.5LeetCode線上編程題
第6章樹和二叉樹
6.1樹
6.1.1樹的定義
6.1.2樹的邏輯結構表示方法
6.1.3樹的基本術語
6.1.4樹的性質
6.1.5樹的基本運算
6.1.6樹的存儲結構
6.2二叉樹
6.2.1二叉樹的概念
6.2.2二叉樹的性質
6.2.3二叉樹的存儲結構
6.2.4二叉樹的遞歸算法設計
6.2.5二叉樹的基本運算算法及其實現
6.3二叉樹的先序、中序和後序遍歷
6.3.1二叉樹遍歷的概念
6.3.2先序、中序和後序遍歷的遞歸算法
6.3.3遞歸遍歷算法的套用
6.4二叉樹的層次遍歷
6.4.1層次遍歷的過程
6.4.2層次遍歷算法的設計
6.4.3層次遍歷算法的套用
6.5二叉樹的構造
6.5.1由先序/中序序列或後序/中序序列構造二叉樹
*6.5.2序列化和反序列化
6.6線索二叉樹
6.6.1線索二叉樹的定義
6.6.2線索化二叉樹
6.6.3遍歷線索二叉樹
6.7哈夫曼樹
6.7.1哈夫曼樹的定義
6.7.2哈夫曼樹的構造算法
6.7.3哈夫曼編碼
6.8二叉樹與樹、森林之間的轉換
6.8.1樹到二叉樹的轉換及還原
6.8.2森林到二叉樹的轉換及還原
*6.9並查集
6.9.1並查集的定義
6.9.2並查集的實現
6.10練習題
6.11上機實驗題
6.11.1基礎實驗題
6.11.2套用實驗題
6.12LeetCode線上編程題
第7章圖
7.1圖的基本概念
7.1.1圖的定義
7.1.2圖的基本術語
7.2圖的存儲結構
7.2.1鄰接矩陣
7.2.2鄰接表
7.3圖的遍歷
7.3.1圖遍歷的概念
7.3.2深度優先遍歷
7.3.3廣度優先遍歷
7.3.4非連通圖的遍歷
7.4圖遍歷算法的套用
7.4.1深度優先遍歷算法的套用
7.4.2廣度優先遍歷算法的套用
7.5生成樹和最小生成樹
7.5.1生成樹和最小生成樹的概念
7.5.2普里姆算法
7.5.3克魯斯卡爾算法
7.6最短路徑
7.6.1最短路徑的概念
7.6.2狄克斯特拉算法
7.6.3弗洛伊德算法
7.7拓撲排序
7.7.1什麼是拓撲排序
7.7.2拓撲排序算法的設計
7.8AOE網和關鍵路徑
7.9練習題
7.10上機實驗題
7.10.1基礎實驗題
7.10.2套用實驗題
7.11LeetCode線上編程題
第8章查找
8.1查找的基本概念
8.2線性表的查找
8.2.1順序查找
8.2.2折半查找
8.2.3索引存儲結構和分塊查找
8.3樹表的查找
8.3.1二叉排序樹
8.3.2平衡二叉樹
8.3.3B樹
8.3.4B+樹
8.4哈希表的查找
8.4.1哈希表的基本概念
8.4.2哈希函式的構造方法
8.4.3哈希衝突的解決方法
8.4.4哈希表的查找及性能分析
8.5練習題
8.6上機實驗題
8.6.1基礎實驗題
8.6.2套用實驗題
8.7LeetCode線上編程題
第9章排序
9.1排序的基本概念
9.2插入排序
9.2.1直接插入排序
9.2.2折半插入排序
9.2.3希爾排序
9.3交換排序
9.3.1冒泡排序
9.3.2快速排序
9.4選擇排序
9.4.1簡單選擇排序
9.4.2堆排序
9.4.3堆數據結構
9.5歸併排序
9.5.1自底向上的二路歸併排序
9.5.2自頂向下的二路歸併排序
9.6基數排序
9.7各種內排序方法的比較和選擇
9.8外排序
9.8.1生成初始歸併段的方法
9.8.2多路歸併方法
9.9練習題
9.10上機實驗題
9.10.1基礎實驗題
9.10.2套用實驗題
9.11LeetCode線上編程題
參考文獻

相關詞條

熱門詞條

聯絡我們