數(shù)據結構是計算機存儲、組織數(shù)據的方式。數(shù)據結構是指相互之間存在一種或多種特定關系的數(shù)據元素的集合。通常情況下,精心選擇的數(shù)據結構可以帶來更高的運行或者存儲效率。數(shù)據結構往往同高效的檢索算法和索引技術有關。本書采用程序設計語言Python作為具體的實現(xiàn)語言,介紹了可以有效處理大量數(shù)據的編程方法與技巧,不僅給出許多重要算法的實例,還介紹了計算復雜性的相關內容,以便計算機程序員對所用算法的效率進行判斷。
全書共20章。1.Python編程101:對使用Python語言編程進行總體介紹,包括創(chuàng)建對象、對象調用方法、運算符重載、讀取文件方法、XML文件等內容;2.計算復雜度:包括計算機體系結構介紹、常見的計算復雜性、攤銷復雜度的方法等;3.遞歸:包括時棧和堆的概念、簡單遞歸函數(shù)的編寫、運行,遞歸計算機圖形學、列表與字符串等;4.排序:包括選擇排序、歸并排序、快速排序、鏈表、棧和隊列等內容;5.集合與映射:數(shù)獨游戲介紹、集、散列等相關概念,最后分析規(guī)劃問題;6.樹:抽象語法樹和表達、前綴和后綴表達式、解析前綴表達式、二叉搜索樹等內容;7.圖:包括圖的定義及理論、存儲結構及算法實現(xiàn)、Kruskal算法、Dijkstra算法、圖的表示方法等;8.Bloom過濾器、Trie數(shù)據類型等相關內容;9.堆:包括堆的主要思想及其建立、排序算法、與其他算法的比較等;10.平衡二叉搜索樹:二叉搜索樹的概念、存儲結構與性質、AVL樹與 Splay樹等具體實例;11.B樹:包括關系型數(shù)據庫的概念、B樹的組織結構、優(yōu)勢、實現(xiàn)、B樹的插入與刪除等內容;12.啟發(fā)式搜索:包括深度優(yōu)先搜索與廣度優(yōu)先搜索、A*搜索、最佳搜索等相關內容;13.附錄A:整數(shù)操作符;14.附錄B:浮算子;15.附錄C:字符串運算符和方法;16.附錄D:列表操作符和方法;17.附錄E:字典操作和方法;18.附錄F:Turtle方法;19附錄G:TurtleScreen方法;20.附錄H:完整的程序。
作者Kent D.Lee博士是美國艾奧瓦洲路德學院計算機科學教授,已成功出版兩本著作:Python編程基礎和編程語言基礎。另一作者Steve Hubbard博士是路德學院數(shù)學與計算機科學系教授。
本書介紹了初級與高級的數(shù)據結構和算法問題,每一章開始提供了學習目標,復習題和編程練習,以及眾多的例證;同時在相關的網站提供可下載的程序和補充文件。本書可以作為計算機學科相關專業(yè)的教材或參考書,同時對計算機科技工作者也有參考價值。
李亞寧,碩士研究生
(中國科學院自動化研究所)