産品特色
內容簡介
本書采用豐富的圖例來闡述基本概念,並以簡潔清晰的語言來詮釋重要的理論和算法,同時配閤完整的範例程序代碼,使讀者可以通過“實例+實踐”來熟悉數據結構。
本書內容共9章,先從基本的數據結構概念開始介紹,再以Python語言來實現數組、堆棧、鏈錶、隊列、樹、圖、排序、查找等重要的數據結構。在附錄A提供瞭Python語言的快速入門,附錄B是使用Python語言實現數據結構程序時調試經驗的分享,附錄C則提供瞭所有課後習題的答案。
作者簡介
現任榮欽科技股份有限公司執行長,美國Rochester Institute of Technology計算機科學研究所畢業,長期從事信息教育及計算機圖書寫作的工作,計算機圖書著作包括計算器概論、數據結構、辦公室電子數據處理、互聯網等相關題材,並監製過多套遊戲以及教學軟件的研發。
目錄
第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.4 算法性能分析
1.4.1 Big-Oh
1.4.2
1.4.3
【課後習題】
第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 建立單嚮鏈錶
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 在雙嚮鏈錶中刪除節點
【課後習題】
第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 後序法錶達式的求值運算
【課後習題】
第5章 隊列
5.1 認識隊列
5.1.1 隊列的基本操作
5.1.2 用數組實現隊列
5.1.3 用鏈錶實現隊列
5.2 隊列的應用
5.2.1 環形隊列
5.2.2 雙嚮隊列
5.2.3 優先隊列
【課後習題】
第6章 樹形結構
6.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.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樹
【課後習題】
第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.7 AOE網絡
【課後習題】
第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 基數排序法
【課後習題】
第9章 查找
9.1 常見的查找方法
9.1.1 順序查找法
9.1.2 二分查找法
9.1.3 插值查找法
9.1.4 斐波拉契查找法
9.2 哈希查找法
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 鏈錶法
【課後習題】
附錄APython語言快速入門
A.1 輕鬆學Python程序
A.2 基本數據處理
A.2.1 數值數據類型
A.2.2 布爾數據類型
A.2.3 字符串數據類型
A.3 輸入input和輸齣print
A.3.1 輸齣print
A.3.2 輸齣轉義字符
A.3.3 輸入input
A.4 運算符與錶達式
A.4.1 算術運算符
A.4.2 復閤賦值運算符
A.4.3 關係運算符
A.4.4 邏輯運算符
A.4.5 位運算符
A.5 流程控製
A.5.1 if語句
A.5.2 for循環
A.5.3 while循環
A.6 其他常用的類型
A.6.1 string字符串
A.6.2 list列錶
A.6.3 tuple 元組和dict字典
A.7 函數
A.7.1 自定義無參數函數
A.7.2 有參數行的函數
A.7.3 函數返迴值
A.7.4 參數傳遞
附錄B數據結構使用Python程序調試實錄
附錄C課後習題與答案
前言/序言
現在無人不談“大數據技術”和“人工智能技術”,而商業智能和機器學習等應用的具體開發中又大量使用Python這門排名已經上升到第5位的程序設計語言。另外,已經有越來越多的大專院校采用Python語言來教授計算機程序設計課程,因而用Python語言來描述算法和講述數據結構就成為順其自然的事情瞭。
“數據結構”毫無疑問是計算機科學既經典又核心的課程之一,隻要從事計算機相關的開發工作,係統地學習數據結構是進入這個行業的“開山斧”。數據結構不僅講授數據的結構以及在計算機內存儲和組織數據的方式,它背後真正蘊含的是與之息息相關的算法,精心選擇的數據結構配閤恰如其分的算法就意味著數據或者信息在計算機內被高效率地存儲和處理。算法其實就是數據結構的靈魂,它既神秘又神奇“好玩”,可以說是“聰明人在計算機上的遊戲”。
《圖解數據結構:使用Python》是一本綜閤且全麵講述數據結構及其算法分析的教科書,為瞭便於高校的教學或者讀者自學,作者在描述數據結構原理和算法時文字清晰而嚴謹,為每個算法及其數據結構提供瞭演算的詳細圖解。另外,為瞭適閤在教學中讓學生上機實踐或者自學者上機“操練”,本書為每個經典的算法都提供瞭Python語言編寫的完整範例程序(包含完整的源代碼),每個範例程序都經過瞭測試和調試,可以直接在標準的Python解釋器中運行,目的就是讓本書的學習者以這些範例程序作為參照,迅速掌握數據結構和算法的要點。
學習《圖解數據結構:使用Python》需要有麵嚮對象程序設計語言的基礎,如果讀者沒有學習過任何麵嚮對象的程序設計語言,那麼建議讀者先學習一下Python語言再來學習本書。如果讀者已經掌握瞭Java、C++、C#等任何一種麵嚮對象的程序設計語言,而沒有學習過Python語言,隻需快速瀏覽一下附錄A“Python語言快速入門”,即可開始本書的學習。
為瞭方便教學和讀者自學,《圖解數據結構:使用Python》每章的最後都提供瞭豐富的課後習題,同時在整本書的附錄C也提供瞭所有課後習題的詳細解答,供讀者參考對照。
資深架構師 趙軍
2018年1月
圖解數據結構--使用Python epub pdf mobi txt 電子書 下載 2024
圖解數據結構--使用Python 下載 epub mobi pdf txt 電子書