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