數(shù)據(jù)結(jié)構(gòu)與算法教程
定 價(jià):39 元
- 作者:唐寧九 ,游洪躍 ,孫界平 編
- 出版時(shí)間:2012/12/1
- ISBN:9787302280309
- 出 版 社:清華大學(xué)出版社
- 中圖法分類(lèi):TP311.12
- 頁(yè)碼:378
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)》合c++面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn),構(gòu)建了數(shù)據(jù)結(jié)構(gòu)與算法,書(shū)中的所有算法都在visualc++6.0、visualc++2005、visualc++2005express、dev-c++和mingwdeveloperstudio開(kāi)發(fā)環(huán)境中進(jìn)行了嚴(yán)格的測(cè)試,而且,在作者個(gè)人網(wǎng)頁(yè)上提供了大量的教學(xué)支持內(nèi)容。
《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)》共分11章,第1章是基礎(chǔ)知識(shí),介紹基本概念及其術(shù)語(yǔ),討論實(shí)用程序軟件包;第2章引入線性表;第3章介紹棧和隊(duì)列,用棧實(shí)現(xiàn)表達(dá)式求值;第4章介紹串,詳細(xì)討論串的存儲(chǔ)結(jié)構(gòu)與模式匹配算法;第5章介紹數(shù)組和廣義表,首次提出了廣義表的使用空間表存儲(chǔ)結(jié)構(gòu);第6章介紹樹(shù)結(jié)構(gòu),應(yīng)用哈夫曼編碼實(shí)現(xiàn)壓縮軟件;第7章介紹圖結(jié)構(gòu),實(shí)現(xiàn)圖的常用存儲(chǔ)結(jié)構(gòu),討論圖的相關(guān)應(yīng)用,并實(shí)現(xiàn)相應(yīng)算法;第8章介紹查找,討論靜態(tài)查找表、動(dòng)態(tài)找查表與散列表,并實(shí)現(xiàn)了所有算法;第9章介紹排序,以簡(jiǎn)潔方式實(shí)現(xiàn)各種排序算法;第10章介紹文件,討論各種常用文件結(jié)構(gòu);第11章介紹算法設(shè)計(jì)技術(shù)與算法分析技術(shù)。
《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)》在內(nèi)容組織上特別考慮了讀者的可接受性;在算法實(shí)現(xiàn)時(shí),重點(diǎn)考慮了程序的可讀性;并且在習(xí)題、上機(jī)實(shí)驗(yàn)或課程設(shè)計(jì)中進(jìn)一步實(shí)現(xiàn)更強(qiáng)的功能。通過(guò)《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)》學(xué)習(xí),讀者不但能迅速提高數(shù)據(jù)結(jié)構(gòu)與算法的水平,還能提高c++程序設(shè)計(jì)的能力,經(jīng)過(guò)適當(dāng)?shù)倪x擇,《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)》可以作為數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)與算法分析、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法等課程的教材,《高等學(xué)校計(jì)算機(jī)課程規(guī)劃教材:數(shù)據(jù)結(jié)構(gòu)與算法教程(C++版)》可作為高等院校計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)的教材,也可供其他從事軟件開(kāi)發(fā)工作的讀者學(xué)習(xí)參考使用。
數(shù)據(jù)結(jié)構(gòu)與算法內(nèi)容豐富,技巧性強(qiáng),包含了計(jì)算機(jī)科學(xué)與技術(shù)的許多重要方面,對(duì)學(xué)生的計(jì)算機(jī)軟件素質(zhì)的培養(yǎng)作用明顯。
本書(shū)采用C++面向?qū)ο蟮挠^點(diǎn)介紹數(shù)據(jù)結(jié)構(gòu)與算法,并使用模板程序設(shè)計(jì)技術(shù),與傳統(tǒng)采用面向過(guò)程的觀點(diǎn)相比優(yōu)勢(shì)較大,使所設(shè)計(jì)的程序更容易實(shí)現(xiàn)代碼重用,在提供通用性和靈活性的同時(shí),又保證了效率。本書(shū)將面向?qū)ο蟪绦蛟O(shè)計(jì)的思想融合到數(shù)據(jù)結(jié)構(gòu)與算法中,讀者通過(guò)學(xué)習(xí)可進(jìn)一步提高面向?qū)ο蟪绦蛟O(shè)計(jì)的能力。
全書(shū)共分為11章,第1章是基礎(chǔ)知識(shí),介紹基本概念及其術(shù)語(yǔ)、抽象數(shù)據(jù)類(lèi)型的實(shí)現(xiàn),還討論算法的概念和算法分析的簡(jiǎn)單方法。作為預(yù)備知識(shí),讀者應(yīng)具有一定的C++程序設(shè)計(jì)的基礎(chǔ)。但為了降低讀者的門(mén)檻,本章還介紹了要用到的C++的主要知識(shí)點(diǎn),并介紹了實(shí)用程序軟件包。
第2章引入線性表,詳細(xì)討論線性表的順序存儲(chǔ)結(jié)構(gòu)與鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。在討論鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),首先仿照傳統(tǒng)方法實(shí)現(xiàn)線性表,在此基礎(chǔ)之上,在鏈表結(jié)構(gòu)中保存當(dāng)前位置和元素個(gè)數(shù),這樣在難度增加不大的情況下提高了算法效率,使學(xué)生逐步體會(huì)改進(jìn)算法的途徑與方法。
第3章介紹棧和隊(duì)列,討論棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)與鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),用棧實(shí)現(xiàn)表達(dá)式求值,通過(guò)學(xué)習(xí)能掌握各種棧和隊(duì)列的實(shí)現(xiàn)與使用方法,對(duì)后繼課程(如操作系統(tǒng)原理和編譯原理)的學(xué)習(xí)打下良好基礎(chǔ)。本章還討論了優(yōu)先隊(duì)列,使隊(duì)列應(yīng)用更加廣泛。
第4章介紹串,詳細(xì)討論串的存儲(chǔ)結(jié)構(gòu)與模式匹配算法,為開(kāi)發(fā)串應(yīng)用軟件(如實(shí)現(xiàn)文本編輯軟件)打下堅(jiān)實(shí)的基礎(chǔ)。
第5章介紹數(shù)組和廣義表,詳細(xì)討論數(shù)組、特殊矩陣、稀疏矩陣和廣義表的存儲(chǔ)結(jié)構(gòu)及實(shí)現(xiàn)方法,首次提出了廣義表的使用空間表存儲(chǔ)結(jié)構(gòu),并使用廣義表實(shí)現(xiàn)m元多項(xiàng)式的表示。
第6章介紹樹(shù)結(jié)構(gòu),討論了二叉樹(shù)、線索二叉樹(shù)、樹(shù)、森林及其哈夫曼樹(shù)的結(jié)構(gòu)及其實(shí)現(xiàn),還用哈夫曼編碼實(shí)現(xiàn)了壓縮軟件。
第7章介紹圖結(jié)構(gòu),實(shí)現(xiàn)圖的常用存儲(chǔ)結(jié)構(gòu),并討論圖的相關(guān)應(yīng)用,實(shí)現(xiàn)相應(yīng)算法(如求最小生成樹(shù)的Prim算法與Kruskal算法,求最短路徑的Dijkstra算法與Floyd算法).
第8章介紹查找,討論靜態(tài)查找表、動(dòng)態(tài)查找表與散列表,還討論二叉排序樹(shù)、二叉平衡樹(shù)與B樹(shù),并實(shí)現(xiàn)所有算法。
第9章介紹排序,以簡(jiǎn)潔方式實(shí)現(xiàn)各種排序算法,還測(cè)試了各種排序算法的實(shí)際運(yùn)行時(shí)間。
第10章介紹文件,討論主存儲(chǔ)器和輔助存儲(chǔ)器,以及各種常用文件結(jié)構(gòu),還特別介紹在數(shù)據(jù)庫(kù)中經(jīng)常采用的VSAM文件,對(duì)讀者研究與學(xué)習(xí)數(shù)據(jù)庫(kù)有一定的幫助。
第11章介紹算法設(shè)計(jì)技術(shù)與算法分析技術(shù),詳細(xì)討論各種算法設(shè)計(jì)技術(shù)的使用方法并實(shí)現(xiàn)了各種算法,并對(duì)算法分析技術(shù)進(jìn)行深入淺出的討論。對(duì)讀者的算法設(shè)計(jì)和算法分析的理論和實(shí)踐都有極大的幫助。
對(duì)于初學(xué)者,要完全獨(dú)立編寫(xiě)數(shù)據(jù)結(jié)構(gòu)與算法的代碼是相當(dāng)困難的,因此本書(shū)討論的數(shù)據(jù)結(jié)構(gòu)與算法都加以實(shí)現(xiàn)并進(jìn)行了嚴(yán)格測(cè)試,提供了完整的測(cè)試程序,讀者可參考這些測(cè)試程序編寫(xiě)相關(guān)算法,但如果只會(huì)使用已有的數(shù)據(jù)結(jié)構(gòu)編寫(xiě)簡(jiǎn)單的程序也不利于讀者對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的深入理解,提高研究新數(shù)據(jù)結(jié)構(gòu)與算法的能力。因此本書(shū)的習(xí)題不但包括基本練習(xí)題,還包括仿照書(shū)中數(shù)據(jù)結(jié)構(gòu)構(gòu)造新數(shù)據(jù)結(jié)構(gòu)的題目,或改造已有算法的題目,這樣使讀者具有構(gòu)造新結(jié)構(gòu)及改造或改進(jìn)算法的能力。
本書(shū)各章還提供了實(shí)例研究,這些實(shí)例研究包含教材基礎(chǔ)內(nèi)容的應(yīng)用(例如第4章的實(shí)例研究--文本編輯,第3章的實(shí)例研究--表達(dá)式求值等),也包含教材正文內(nèi)容的補(bǔ)充(例如第6章的實(shí)例研究--樹(shù)與等價(jià)關(guān)系)。實(shí)例研究主要提供給那些精力充沛的學(xué)生深入學(xué)習(xí)與研究,讀者通過(guò)對(duì)實(shí)例研究的學(xué)習(xí),可提高實(shí)際應(yīng)用數(shù)據(jù)結(jié)構(gòu)與算法的能力,雖然有一定的難度,但應(yīng)比讀者的想象更易學(xué)習(xí)與掌握。
為了盡快提高讀者的學(xué)習(xí)能力,本書(shū)各章還提供了深入學(xué)習(xí)導(dǎo)讀,包括本書(shū)作者實(shí)現(xiàn)相關(guān)數(shù)據(jù)結(jié)構(gòu)與算法的最原始思想的資料來(lái)源,也包括進(jìn)一步學(xué)習(xí)的參考資料,極大地方便了讀者與教師查閱資料。
為了加強(qiáng)實(shí)踐教學(xué)的需要,本書(shū)的附錄中提供了實(shí)驗(yàn)題目與課程設(shè)計(jì)項(xiàng)目,并提供了實(shí)驗(yàn)報(bào)告格式與課程設(shè)計(jì)報(bào)告格式,以便學(xué)生在做數(shù)據(jù)結(jié)構(gòu)與算法的實(shí)驗(yàn)與課程設(shè)計(jì)時(shí)選擇,也為教師提供了可供參考的實(shí)驗(yàn)與課程設(shè)計(jì)的素材。
本教材在內(nèi)容組織上特別考慮了讀者的可接受性;在算法實(shí)現(xiàn)時(shí),重點(diǎn)考慮程序的可讀性,教材基本內(nèi)容的算法一般選擇最簡(jiǎn)單實(shí)現(xiàn)方式,學(xué)生容易接受;一般采用啟發(fā)的方式在習(xí)題、上機(jī)實(shí)驗(yàn)或課程設(shè)計(jì)中進(jìn)一步實(shí)現(xiàn)更強(qiáng)的功能,這樣容易培養(yǎng)起讀者的學(xué)習(xí)興趣,使讀者感到自己具有能發(fā)展或改進(jìn)已有算法的能力,也會(huì)使讀者感到自己已具有計(jì)算機(jī)高手的實(shí)力。
本書(shū)的作者都活躍在教學(xué)研究第一線上,有的作者還具有深厚的數(shù)學(xué)功底,不但完成了所有算法的測(cè)試程序,還對(duì)算法分析的相關(guān)公式進(jìn)行了嚴(yán)格的數(shù)學(xué)推理。
本書(shū)采用了模板程序設(shè)計(jì)技術(shù),模板技術(shù)已成為現(xiàn)代C++語(yǔ)言的風(fēng)格基礎(chǔ),C++98(1998年標(biāo)準(zhǔn)化的C++)提供的標(biāo)準(zhǔn)程序庫(kù)中有80%的成分是使用模板機(jī)制實(shí)現(xiàn)的STL(Standard Template Library,標(biāo)準(zhǔn)模板庫(kù))。而國(guó)內(nèi)現(xiàn)階段教學(xué)并未重視C++的模板程序設(shè)計(jì),書(shū)籍資料也不是很多。作者認(rèn)為在C++中,只要模仿本書(shū)算法,讀者會(huì)在不知不覺(jué)中就掌握了模板程序設(shè)計(jì)技巧。
現(xiàn)在來(lái)討論一下在國(guó)外數(shù)據(jù)結(jié)構(gòu)與算法教材中上機(jī)時(shí)喜歡采用的STL。實(shí)際上,STL是ATandT貝爾實(shí)驗(yàn)室和HP研究實(shí)驗(yàn)室的研究人員將模板程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)的原理結(jié)合起來(lái),創(chuàng)造的一套研究數(shù)據(jù)結(jié)構(gòu)與算法的統(tǒng)一方法,現(xiàn)在已成為C++標(biāo)準(zhǔn)庫(kù)的一部分。STL提供了實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的新途徑。它將(數(shù)據(jù))結(jié)構(gòu)(即組織數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu))抽象為容器。通過(guò)使用模板和迭代器,STL庫(kù)使程序員能夠?qū)V泛的通用算法應(yīng)用到各種容器類(lèi)上。通過(guò)本書(shū)作者的研究與了解,STL庫(kù)只覆蓋了數(shù)據(jù)結(jié)構(gòu)中的線性結(jié)構(gòu)和樹(shù)結(jié)構(gòu),并沒(méi)有覆蓋圖部分,因此,對(duì)數(shù)據(jù)結(jié)構(gòu)來(lái)講,STL庫(kù)并不完備,同時(shí),如果讀者上機(jī)編程都只使用STL庫(kù)解決數(shù)據(jù)結(jié)構(gòu)的相關(guān)算法,可能使讀者在數(shù)據(jù)結(jié)構(gòu)編程方面,只會(huì)使用STL庫(kù),而不能獨(dú)自設(shè)計(jì)新數(shù)據(jù)結(jié)構(gòu)。本書(shū)采用模板方法實(shí)現(xiàn)了所有書(shū)中的數(shù)據(jù)結(jié)構(gòu)算法,應(yīng)比STL庫(kù)更完備;同時(shí)STL庫(kù)中包含的源代碼可讀性差,不適合作為教學(xué)使用,本書(shū)的算法源程序首要強(qiáng)調(diào)可讀性,使讀者容易接受與模仿,并且可進(jìn)行改進(jìn)或修改算法實(shí)現(xiàn),因此在某種意義上講,本書(shū)提供的關(guān)于數(shù)據(jù)結(jié)構(gòu)與算法實(shí)現(xiàn)的類(lèi)模板與函數(shù)模板是一種GTL (General Template Library)或OSGTL (Open Source General Template Library) ,讀者也可從作者個(gè)人主頁(yè)提供的軟件包(具體內(nèi)容見(jiàn)附錄B)來(lái)進(jìn)行實(shí)際數(shù)據(jù)結(jié)構(gòu)與算法方面的軟件開(kāi)發(fā);當(dāng)然,通過(guò)本書(shū)的學(xué)習(xí),再返回來(lái)學(xué)習(xí)STL庫(kù)的應(yīng)用,將會(huì)事半功倍,讀者只要找一本介紹STL的書(shū)籍或網(wǎng)上找一些介紹使用STL庫(kù)的文檔,并用STL庫(kù)試著編程即可完全掌握STL庫(kù)的使用。
特別要提一下有關(guān)C++編譯器的問(wèn)題。在C++之外的任何編程語(yǔ)言中,編譯器都沒(méi)有受到過(guò)如此之重視,這是因?yàn)镃++是一門(mén)非常復(fù)雜的語(yǔ)言,以致編譯器也難于構(gòu)造。下面介紹一些常用的優(yōu)秀C++編譯器。
Visual C++編譯器:由微軟開(kāi)發(fā),現(xiàn)在主要流行Visual C++ 6.0、Visual C++ 2005以及Visual C++ 2005 Express,特點(diǎn)是集成開(kāi)發(fā)環(huán)境用戶界面友好,信息提示準(zhǔn)確,調(diào)試方便,對(duì)模板支持最完善;Visual C++ 6.0對(duì)硬件環(huán)境要求低,現(xiàn)在安裝的機(jī)器最多,但對(duì)標(biāo)準(zhǔn)C++兼容只有83.43%, Visual C++ 2005與Visual C++ 2005 Express在軟件提示信息上做了進(jìn)一步的優(yōu)化與改進(jìn),并且對(duì)標(biāo)準(zhǔn)C++兼容程度達(dá)到了98%以上,但對(duì)硬件的要求較高;還有Visual C++ 2005 Express是一種輕量級(jí)的Visual C++軟件,易于使用。對(duì)于編程愛(ài)好者、學(xué)生和初學(xué)者來(lái)說(shuō)是很好的編程工具,微軟在2006年4月22日正式宣布 Visual Studio 2005 Express版永久免費(fèi)。
GCC編譯器:著名的開(kāi)源C++編譯器。是在UNIX操作系統(tǒng)(例如Linux)下編寫(xiě)C++程序的首選,有非常好的可移植性,可以在非常廣泛的平臺(tái)上使用,也是編寫(xiě)跨平臺(tái)、嵌入式程序很好的選擇。GCC 3.3與標(biāo)準(zhǔn)C++兼容程度大概能夠達(dá)到96.15%,F(xiàn)已有一些移植在Windows環(huán)境下使用GCC編譯器的IDE(集成開(kāi)發(fā)環(huán)境),例如Dev-C++與MinGW Developer Studio,其中Dev-C++是能夠讓GCC在Windows下運(yùn)行的集成開(kāi)發(fā)環(huán)境,提供了與專(zhuān)業(yè)IDE相媲美的語(yǔ)法高亮、代碼提示與調(diào)試等功能;MinGW Developer Studio是跨平臺(tái)下的GCC集成開(kāi)發(fā)環(huán)境。目前支持 Windows、Linux和 FreeBSD;根據(jù)作者的實(shí)際使用,感覺(jué)使用GCC編譯器的IDE錯(cuò)誤信息提示的智能較低,錯(cuò)誤提示不太準(zhǔn)確,還有就是對(duì)模板支持較差,對(duì)語(yǔ)法檢查較嚴(yán)格,有些在Visual C++編譯器中編譯通過(guò)的程序可能在GCC編譯器的IDE還會(huì)顯示有錯(cuò)誤信息。
本書(shū)所有算法都同時(shí)在Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express、Dev-C++和MinGW Developer Studio中通過(guò)測(cè)試。讀者可根據(jù)實(shí)際情況選擇適當(dāng)?shù)木幾g器,建議選擇Visual C++ 6.0.
教師可采取多種方式來(lái)使用本書(shū)作為講授數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)與算法分析、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法等課程,應(yīng)該根據(jù)學(xué)生的背景知識(shí)以及課程的學(xué)時(shí)數(shù)來(lái)進(jìn)行內(nèi)容的取舍。為滿足不同層次的教學(xué)需求,本教材使用了分層的思想,分層方法如下:沒(méi)加有星號(hào)*及雙星號(hào)**的部分是基本內(nèi)容,適合所有讀者學(xué)習(xí);加有星號(hào)的部分是適合計(jì)算機(jī)專(zhuān)業(yè)的讀者深入學(xué)習(xí)的選學(xué)部分;加有雙星號(hào)的部分適合于感興趣的同學(xué)研究,尤其適合于那些有志于ACM競(jìng)賽的讀者加以深入研究。
作者為本書(shū)提供了全面的教學(xué)支持,如果在教學(xué)或?qū)W習(xí)過(guò)程中發(fā)現(xiàn)與本書(shū)有關(guān)的任何問(wèn)題都可以與作者聯(lián)系:youhongyue168@gmail.com,作者將盡力滿足讀者的要求,并可能將解答公布在作者的教學(xué)網(wǎng)站http://teachhelp.changeip.net:9988/或http://teachhelp.3322.org:9988/上。在教學(xué)網(wǎng)站上還將提供如下內(nèi)容:
(1) 提供書(shū)中所有算法在Visual C++ 6.0、Visual C++2005、Visual C++2005 Express、Dev-C++和MinGW Developer Studio開(kāi)發(fā)環(huán)境中的測(cè)試程序,今后還會(huì)提供當(dāng)時(shí)流行的C++開(kāi)發(fā)環(huán)境的測(cè)試程序,每種開(kāi)發(fā)環(huán)境還將提供基本開(kāi)發(fā)過(guò)程的文檔;還提供本書(shū)作者開(kāi)發(fā)的軟件包(包含所有本書(shū)所講的數(shù)據(jù)結(jié)構(gòu)與算法的類(lèi)模板與函數(shù)模板).
(2) 提供教學(xué)用Power Point幻燈片ppt課件。
(3) 向教師提供所有習(xí)題、上機(jī)實(shí)驗(yàn)題與課程設(shè)計(jì)項(xiàng)目的解答或參考程序;對(duì)學(xué)生來(lái)講,將在每學(xué)期期末(第15周~第20周)公布解壓碼。
(4) 數(shù)據(jù)結(jié)構(gòu)與算法問(wèn)答專(zhuān)欄。
(5) 提供至少8套數(shù)據(jù)結(jié)構(gòu)與算法模擬試題及其解答,以供學(xué)生期末及考研復(fù)習(xí),也可供教師出考題時(shí)參考。
(6) 提供數(shù)據(jù)結(jié)構(gòu)與算法相關(guān)的其他資料(例如Dev-C++與MinGW Developer Studio軟件,流行免費(fèi)C++編譯器的下載網(wǎng)址等).
希望各位能夠抽出寶貴的時(shí)間將你對(duì)本教材的建議或意見(jiàn),當(dāng)然也可以發(fā)表對(duì)國(guó)內(nèi)外的數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)的任何意見(jiàn)寄給作者,你的意見(jiàn)將是我們?cè)侔嫘抻喗滩牡闹匾獏⒖肌?br /> 張衛(wèi)華、彭駿、譚斌、李培宇、何凱霖、姜琳、聶清彬、黃維、鄒昌文、王文昌、周焯華、胡開(kāi)文、沈潔、周德華與歐陽(yáng)等人對(duì)本書(shū)做了大量的工作,包括提供資料,調(diào)試算法,參與了部分內(nèi)容的編寫(xiě),在此特向他們表示感謝;作者還要感謝為本書(shū)提供直接或間接幫助的每一個(gè)朋友,由于你們熱情的幫助或鼓勵(lì),激發(fā)了作者寫(xiě)好本書(shū)的信心以及寫(xiě)作熱情。
本書(shū)的出版要感謝清華大學(xué)出版社各位編輯及評(píng)審專(zhuān)家,由于他們?yōu)楸緯?shū)的出版傾注了大量熱情,也由于他們具有前瞻性的眼光才讓讀者有機(jī)會(huì)看到本書(shū)。
盡管作者有良好而負(fù)責(zé)任的嚴(yán)格態(tài)度,并做出了最大努力,但由于作者水平有限,書(shū)中難免有不妥之處,因此,敬請(qǐng)各位讀者不吝賜教,以便作者有一個(gè)提高的機(jī)會(huì),并在再版時(shí)盡量采用你們的意見(jiàn)。
編 者2012年10月
第1章 緒論
1.1 數(shù)據(jù)結(jié)構(gòu)的概念和學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的必要性
1.2 數(shù)據(jù)結(jié)構(gòu)的基本概念
1.3 抽象數(shù)據(jù)類(lèi)型及其實(shí)現(xiàn)
1.4 算法和算法分析
1.5 實(shí)用程序軟件包
1.6 深入學(xué)習(xí)導(dǎo)讀
1.7 習(xí)題
第2章 線性表
2.1 線性表的邏輯結(jié)構(gòu)
2.2 線性表的順序存儲(chǔ)結(jié)構(gòu)
2.3 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
2.4 實(shí)例研究: 一元多項(xiàng)式的表示
2.5 深入學(xué)習(xí)導(dǎo)讀
2.6 習(xí)題
第3章 棧和隊(duì)列
3.1 棧
3.2 隊(duì)列
3.3 實(shí)例研究: 表達(dá)式求值
3.4 深入學(xué)習(xí)導(dǎo)讀
3.5 習(xí)題
第4章 串
4.1 串類(lèi)型的定義
4.2 字符串的實(shí)現(xiàn)
4.3 字符串模式匹配算法
4.4 實(shí)例研究: 文本編輯
4.5 深入學(xué)習(xí)導(dǎo)讀
4.6 習(xí)題
第5章 數(shù)組和廣義表
5.1 數(shù)組
5.2 矩陣
5.3 廣義表
5.4 深入學(xué)習(xí)導(dǎo)讀
5.5 習(xí)題
第6章 樹(shù)和二叉樹(shù)
第7章 圖
第8章 查找
第9章 排序
第10章 文件
第11章 算法設(shè)計(jì)與分析
參考文獻(xiàn)