大話數(shù)據(jù)結(jié)構(gòu)

出版時(shí)間:2011-6  出版社:清華大學(xué)出版社  作者:程杰  頁數(shù):468  
Tag標(biāo)簽:無  

前言

前 言本書起因大家好!我是《大話設(shè)計(jì)模式》(2008年初出版)的作者,三年來,承蒙廣大讀者的厚愛,《大話設(shè)計(jì)模式》取得了較大的成功。僅在當(dāng)當(dāng)網(wǎng),截止本文寫作時(shí),就已經(jīng)有1073次評(píng)論,705次5星評(píng)價(jià),位居五星圖書榜計(jì)算機(jī)/網(wǎng)絡(luò)類的累計(jì)總榜第二名。此書已經(jīng)成為國內(nèi)原創(chuàng)計(jì)算機(jī)類圖書最暢銷的書籍之一。對(duì)于這樣一個(gè)自己喜歡做、可以做得好,而且已經(jīng)得到了市場廣泛認(rèn)可,為很多朋友提供幫助的事情,我沒有理由不去繼續(xù)做下去。這就是我準(zhǔn)備再寫書的原因。我曾做過調(diào)查,數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)者大多都有這樣的感慨:數(shù)據(jù)結(jié)構(gòu)很重要,一定要學(xué)好,但數(shù)據(jù)結(jié)構(gòu)比較抽象,有些算法理解起來很困難,學(xué)得很累??晌腋M麄鬟_(dá)這樣的信息:數(shù)據(jù)結(jié)構(gòu)非常有趣,很多算法是智慧的結(jié)晶,學(xué)習(xí)它是去感受計(jì)算機(jī)編程技術(shù)的魅力,在理解掌握它的同時(shí),整個(gè)過程都是一種愉悅的精神感受,而非枯燥乏味的一門課程。因此我決定寫作一本關(guān)于數(shù)據(jù)結(jié)構(gòu)有趣的書。不過現(xiàn)實(shí)總比理想來得更“現(xiàn)實(shí)”。要想把書寫好,談何容易,我需要突破很多困難……嗐!不管如何,現(xiàn)在您看到了本書,那就說明我已經(jīng)克服了困難戰(zhàn)勝了自己。希望您可以喜歡上這本書。本書定位本書的定位就是一本適合讀者自學(xué)數(shù)據(jù)結(jié)構(gòu)的書籍,它有區(qū)別于教材,希望給大家另一種閱讀體驗(yàn)。通常講解數(shù)據(jù)結(jié)構(gòu)的圖書都是以教材的方式呈現(xiàn)。在寫作前,我購買或在圖書館借閱了十幾本非常好的數(shù)據(jù)結(jié)構(gòu)相關(guān)教材用來為寫作本書做準(zhǔn)備。但經(jīng)過認(rèn)真閱讀后,我發(fā)現(xiàn),它們大多不是一本好的“自學(xué)讀物”。我沒有輕視這些好書的意思,不過教材和自學(xué)讀物,所面向的讀者是完全不同的。好的教材應(yīng)該是提綱挈領(lǐng)、重點(diǎn)突出,一定要留出思考的空間,否則就沒必要再聽老師上課了。很多內(nèi)容的講解是由老師在課堂完成,教材中有練習(xí)、課后習(xí)題、思考題等,這些大多可以通過老師來解答。比如我們中學(xué)時(shí)的語文、數(shù)學(xué)課本,很薄的一本書通常要用一學(xué)期、甚至一年的時(shí)間來學(xué)習(xí),這就是因?yàn)樗鼈兪墙滩亩皇亲詫W(xué)讀物。如果是小說,可能一兩天就讀完了。好的自學(xué)讀物的目標(biāo)是讓初學(xué)者“獨(dú)自”全盤掌握知識(shí),需要強(qiáng)調(diào)“獨(dú)自”一詞,這就說明讀者在閱讀時(shí),是完全依靠自己的力量來向未知發(fā)出挑戰(zhàn)。因此書中內(nèi)容,要么不寫,寫了就應(yīng)該寫透。如果讀者在閱讀時(shí)總是疑惑重重,那么這本書就有很大的問題了。我也就是在基于這樣的認(rèn)識(shí),決心將《大話數(shù)據(jù)結(jié)構(gòu)》真正寫成一本關(guān)于數(shù)據(jù)結(jié)構(gòu)和算法的自學(xué)讀物來展開寫作的。本書特色1.趣味引導(dǎo)大部分的編程類圖書,在內(nèi)容上基本都是直奔主題。但是尼采曾說過:“人們無法理解他沒有經(jīng)歷過的事情?!睋Q句話說,我們只接受過去早已理解的事物相關(guān)的信息。這是一種比較學(xué)習(xí)過程,在這個(gè)過程中,大腦尋找每條信息之間的聯(lián)系。所以教育專家普遍認(rèn)為,吸引學(xué)生的注意力,比較好的辦法是用他們比較熟知的知識(shí)開始。因此在本書中,我會(huì)用一個(gè)故事、一個(gè)趣味題目、一部電影的介紹等形式來作為每一章甚至很多小節(jié)的開頭,選擇的內(nèi)容也多多少少與要講的主題內(nèi)容相關(guān)。這并不是多余,而是有意為之。事實(shí)上,這樣的形式在我的前一本書中已經(jīng)得到了普遍認(rèn)可。2.圖文并茂西方有句諺語,“A picture is worth a thousand words.(一圖值千言)”。用上千個(gè)字描述不明白的東西,很可能一張圖就能解釋清楚。我非常認(rèn)可這個(gè)觀點(diǎn),所以本書雖沒有達(dá)到每一頁都有圖,但基本做到了絕大部分講解都有相關(guān)圖示,關(guān)鍵算法更是通過多圖逐步分解剖析。盡管這帶來了寫作上的難度,但卻可以達(dá)到較好的效果。畢竟,讀者通過本書開始學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí),要從一無所知或略知一二到完全理解,甚至掌握應(yīng)用,是需要一個(gè)比較艱苦的過程,用大量的圖示可以減少這個(gè)過程的長度。3.代碼詳解我在寫作中盡量摒棄了傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)教材的“重理論思想而輕代碼講解”的作法。在準(zhǔn)備數(shù)據(jù)結(jié)構(gòu)寫作時(shí)我發(fā)現(xiàn),很多教材對(duì)數(shù)據(jù)結(jié)構(gòu)理論和算法設(shè)計(jì)思想講得比較好,可一到實(shí)際代碼時(shí),有的把代碼貼出來加少量注釋,有的直接用偽代碼形式。這對(duì)于上課的學(xué)生還好,畢竟有老師在課堂中去詳解代碼編寫原理,可是對(duì)于初學(xué)數(shù)據(jù)結(jié)構(gòu)和算法的自學(xué)者而言,如果書中不去解釋代碼某些細(xì)節(jié)為什么那樣編寫的原因,甚至代碼根本不可能在某個(gè)編譯器中運(yùn)行通過,其挫折感是很強(qiáng)烈的。比如即使理解了圖結(jié)構(gòu)中的最短路徑求解原理,也可能無法寫出最短路徑的算法。我把代碼在運(yùn)行過程中變量的變化融入到整個(gè)算法設(shè)計(jì)思想的講解中,配合相應(yīng)的示意圖,會(huì)幫助大家更加容易理解算法的實(shí)質(zhì)。這種講解模式在本書的第6、7、8、9章的很多復(fù)雜算法中有具體體現(xiàn),越是復(fù)雜的代碼越是講解細(xì)致。這算是本書的一個(gè)特色,希望對(duì)讀者有幫助。4.形式新穎我把本書的內(nèi)容虛構(gòu)成了一個(gè)老師上課的場景,所有內(nèi)容都通過這位老師表達(dá)出來,書中的文字非??谡Z化,這樣做的目的是為了更加直觀地讓讀者感覺,自己是在學(xué)習(xí),是在上課。有人可能會(huì)說,現(xiàn)在的課堂大都是讓人昏昏欲睡,把讀者帶入上課場景,不是更加讓讀者犯困嗎?我覺得如果你的學(xué)習(xí)經(jīng)歷中聽過一些優(yōu)秀老師的課,你就不會(huì)下這樣的結(jié)論。好的老師講課,是可以做到引人入勝的。有人可能會(huì)問,我為什么不用《大話設(shè)計(jì)模式》中的對(duì)話形式,而采用講課形式呢?這是對(duì)數(shù)據(jù)結(jié)構(gòu)這門學(xué)問的特點(diǎn)考慮的。設(shè)計(jì)模式主要都是思想體現(xiàn),通常會(huì)仁者見仁、智者見智,用對(duì)話展開比較容易;而數(shù)據(jù)結(jié)構(gòu)中更多的是定義、術(shù)語、經(jīng)典算法等,這些公認(rèn)的知識(shí),可討論的地方并不多,更多的是需要把它講清楚。讓兩個(gè)人在一起討論某個(gè)設(shè)計(jì)模式的優(yōu)缺點(diǎn),會(huì)非常合適,而討論數(shù)據(jù)結(jié)構(gòu)定義的好壞,就沒有太大意義了,不如讓一個(gè)老師告訴學(xué)生數(shù)據(jù)結(jié)構(gòu)的定義好在哪里更符合實(shí)際。因此用傳統(tǒng)的講課形式會(huì)好一些。另外,本書沒有習(xí)題,有思考的題目也一定會(huì)給出某種答案。但本書每個(gè)復(fù)雜知識(shí)點(diǎn)的末尾,都會(huì)提供另一本書的進(jìn)一步閱讀建議。這也是基于它是一本自學(xué)讀物的原則。讀者閱讀本書可能是任何時(shí)間任何地方,如果書中存在沒有解答的習(xí)題,碰到了困難是沒法及時(shí)找到老師來幫助的,因此本書盡量避免讓讀者有這樣的困惑存在。如果需要練習(xí)的同學(xué),我覺得還是應(yīng)該考慮再去買本習(xí)題集來學(xué)習(xí)。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法,做題和上機(jī)寫代碼非常有必要,從這個(gè)角度也說明,閱讀完本書其實(shí)也只是完成入門而已。本書既然是以老師上課的形式來進(jìn)行,那就免不了要融入一名教師除了授業(yè)解惑以外,還要傳達(dá)一些個(gè)人價(jià)值觀的體現(xiàn)。書中很多細(xì)微處,如對(duì)某位科學(xué)家的尊敬、對(duì)某個(gè)算法的推崇、對(duì)勤奮勵(lì)志故事的講述等都在表達(dá)著一個(gè)老師向?qū)W生傳遞真、善、美的意愿。我始終認(rèn)為,讀者拿到的雖然只是一本沒有表情、不會(huì)說話的書,但其實(shí)也是在隔空與另一個(gè)朋友交流。人與人的交流不可能只是就事論事,一定會(huì)有情感的溝通,這種情感如果能產(chǎn)生共鳴、達(dá)成互信,就會(huì)讓事情(比如學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法這件事)本身更容易理解和接受。本書內(nèi)容本書主要是按照教育部關(guān)于計(jì)算機(jī)專業(yè)數(shù)據(jù)結(jié)構(gòu)課程大綱的要求略微增減來組織內(nèi)容的。主要包括:數(shù)據(jù)結(jié)構(gòu)介紹,算法推導(dǎo)大O階的方法,線性表結(jié)構(gòu)的介紹,順序結(jié)構(gòu)與鏈?zhǔn)浇Y(jié)構(gòu)差異,棧與隊(duì)列的應(yīng)用,串的樸素模式匹配、KMP模式匹配算法,樹結(jié)構(gòu)的介紹,二叉樹前中后序遍歷,線索二叉樹,赫夫曼樹及應(yīng)用,圖結(jié)構(gòu)的介紹,圖的深度、廣度遍歷,最小生成樹兩種算法,最短路徑兩種算法,拓?fù)渑判蚺c關(guān)鍵路徑算法,查找應(yīng)用的相關(guān)介紹,折半查找、插值查找、斐波那契查找等靜態(tài)查找,稠密索引、分塊索引、倒排索引等索引技術(shù),二叉排序樹、平衡二叉樹等動(dòng)態(tài)查找,B樹、B+樹技術(shù),散列表技術(shù),排序應(yīng)用的相關(guān)介紹,冒泡、選擇、插入等簡單排序,希爾、堆、歸并、快速等改進(jìn)排序,各位排序算法的對(duì)比等。本書讀者數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)軟件相關(guān)專業(yè)的基礎(chǔ)課程,幾乎可以說,要想從事編程工作,無論你是否是科班出身,都不可以繞過這部分知識(shí)。因此,適合閱讀本書的讀者非常廣泛,包括在讀的本???、中專職高技校等計(jì)算機(jī)專業(yè)學(xué)生、想轉(zhuǎn)行做開發(fā)的非專業(yè)人員、欲考計(jì)算機(jī)研究生的應(yīng)屆或在職人員,以及工作后需要補(bǔ)學(xué)或溫習(xí)數(shù)據(jù)結(jié)構(gòu)和算法的程序員等各類讀者。本書對(duì)讀者的技術(shù)背影要求比較低,只要是學(xué)過一門高級(jí)編程語言,例如C、C++、Java、C#、VB等就可以開始閱讀本書。不過由于當(dāng)中涉及到比較復(fù)雜的算法知識(shí),需要讀者有一定的數(shù)學(xué)修養(yǎng)和邏輯思維能力,否則可能書籍的后半部分閱讀起來會(huì)比較吃力。本書研讀方法事實(shí)上,任何有難度的知識(shí)和技巧,都不是那么容易被掌握的。我盡管已經(jīng)朝著通俗易懂的方向努力,可有些數(shù)據(jù)結(jié)構(gòu),特別是經(jīng)典算法,是幾代科學(xué)家的智慧結(jié)晶,因此要掌握它們還是需要讀者的全力投入。美國暢銷書《如何閱讀一本書》中提到“閱讀可以是一件主動(dòng)的事,閱讀越主動(dòng),效果越好。拿同樣的書給背景相近的兩個(gè)人閱讀,一個(gè)人卻比另一個(gè)人從書中得到了更多,這是因?yàn)椋紫仍谟谶@人的主動(dòng),其次,在于他在閱讀中的每一種活動(dòng)都參與了更多的技巧。這兩件事是息息相關(guān)的。閱讀是一個(gè)復(fù)雜的活動(dòng),就跟寫作一樣,包含了大量不同的活動(dòng)。要達(dá)成良好的閱讀,這些活動(dòng)都是不可或缺的。一個(gè)人越能良好運(yùn)作這些活動(dòng),閱讀的效果也就越好?!蔽耶?dāng)然希望讀者在閱讀本書后收獲巨大,但這顯然是一廂情愿。要想獲得更多,您可能也需要付出類似我寫作一樣的力氣來閱讀,例如摘抄文字、眉批心得、稿紙演算、代碼輸入電腦,以及您自己在編程工作中的運(yùn)用等。這些相應(yīng)活動(dòng)的執(zhí)行,將會(huì)使您得到巨大的收獲。作為作者,建議本書的研讀方法為:1.復(fù)習(xí)C語言的基礎(chǔ)知識(shí)。如果你掌握的是別的語言也不要緊,適當(dāng)了解一些C語言和你掌握的編程語言的語法差異還是有必要的。甚至將本書代碼改造成另一種語言本身就是一種非常好的學(xué)習(xí)方法。2.閱讀第一遍時(shí),建議從頭至尾進(jìn)行。如果你對(duì)前面的知識(shí)有足夠了解,當(dāng)然可以跳過直接閱讀后面的章節(jié)。不過若要學(xué)習(xí)一門完整的知識(shí)并形成體系。通讀本書,還是最好的學(xué)習(xí)方法。3.閱讀時(shí),摘抄是非常好的習(xí)慣?!白畹哪矂儆谧顝?qiáng)的記憶!”有不少讀者會(huì)認(rèn)為摘抄了將來也不會(huì)再去看,有什么必要,但其實(shí)在寫字的過程就是大腦學(xué)習(xí)的過程,寫字在減緩你閱讀的速度,從而讓你更好地消化閱讀的內(nèi)容。相信大家都能理解,“囫圇吞棗”和“慢慢品味”的差異,學(xué)習(xí)同樣如此。4.閱讀每一章時(shí),特別是在閱讀算法的推導(dǎo)過程時(shí),一定要在電腦中運(yùn)行代碼(本書源碼的下載地址可以到http://cj723.cnblogs.com中的《大話數(shù)據(jù)結(jié)構(gòu)相關(guān)主題》中找到),了解代碼的運(yùn)行過程。本書的很多算法都做到了逐行講解,但單純閱讀可能真的很難達(dá)到理解的程度(這是紙質(zhì)書無法克服的缺陷),需要你通過開發(fā)工具調(diào)試,并設(shè)置斷點(diǎn)和逐行執(zhí)行,并參照書中的講解,觀察變量的變化情況來理解算法的編寫原理。5.閱讀完每一章時(shí),一定要在理解基礎(chǔ)上記憶一些關(guān)鍵東西。最佳的效果就是你可以不看書也做到一點(diǎn)不錯(cuò)地默寫出相關(guān)算法。6.閱讀完每一章時(shí),一定要適當(dāng)練習(xí)。本書沒有提供練習(xí)題,但市場上相關(guān)的數(shù)據(jù)結(jié)構(gòu)習(xí)題集比比皆是,可以選擇嘗試。另外互聯(lián)網(wǎng)上也可以獲得足夠的習(xí)題來給你練習(xí)。練習(xí)的目的是為了檢測自己是否真的完全理解了書中的內(nèi)容。事實(shí)上很多時(shí)候,閱讀中的人們只是自我感覺理解,而并非真正的明白。7.學(xué)習(xí)不可能一蹴而就,數(shù)據(jù)結(jié)構(gòu)和算法如果通過一本書就可以掌握,那本身就是笑話。本書附錄提供了本書寫作時(shí)的參考書目,基本都是最優(yōu)秀的數(shù)據(jù)結(jié)構(gòu)或相關(guān)的中文書籍各有側(cè)重,建議大家可以適當(dāng)?shù)亻喿x。8.在之后的編程學(xué)習(xí)和工作中,盡量把已經(jīng)學(xué)到的數(shù)據(jù)結(jié)構(gòu)和算法知識(shí)運(yùn)用到現(xiàn)實(shí)開發(fā)中。遺忘時(shí)翻閱本書回顧相關(guān)內(nèi)容,最終達(dá)到精通數(shù)據(jù)結(jié)構(gòu)和相關(guān)算法的境界。編程語言說明本書是用C語言編寫,基于C90(ISO C)的標(biāo)準(zhǔn)。讀者可以選擇任何一款基于C90標(biāo)準(zhǔn)的C語言開發(fā)工具或更高版本的開發(fā)工具來學(xué)習(xí)本書中的代碼。本人一直習(xí)慣于用Visual Studio 2008作為開發(fā)工具,因此在寫作此書時(shí),也是用此工具的Visual C++來編譯調(diào)試代碼,一切都相安無事,但寫作完成后,考慮到不同讀者應(yīng)用開發(fā)工具的習(xí)慣不同,最終在編輯的建議下,決定提供一份可在C90標(biāo)準(zhǔn)的C語言開發(fā)環(huán)境中編譯通過的代碼,結(jié)果發(fā)現(xiàn)錯(cuò)誤百出。例如C90標(biāo)準(zhǔn)的注釋要求是“/* 注釋文字 */”而不允許是“//注釋文字”:要求變量聲明必須要在函數(shù)的最前面,只能是“int i; for(i=0;i

內(nèi)容概要

  本書為超級(jí)暢銷書《大話設(shè)計(jì)模式》作者程杰潛心三年推出的扛鼎之作!以一個(gè)計(jì)算機(jī)教師教學(xué)為場景,講解數(shù)據(jù)結(jié)構(gòu)和相關(guān)算法的知識(shí)。通篇以一種趣味方式來敘述,大量引用了各種各樣的生活知識(shí)來類比,并充分運(yùn)用圖形語言來體現(xiàn)抽象內(nèi)容,對(duì)數(shù)據(jù)結(jié)構(gòu)所涉及到的一些經(jīng)典算法做到逐行分析、多算法比較。與市場上的同類數(shù)據(jù)結(jié)構(gòu)圖書相比,本書內(nèi)容趣味易讀,算法講解細(xì)致深刻,是一本非常適合自學(xué)的讀物。
  本書以一個(gè)計(jì)算機(jī)教師教學(xué)為場景,講解數(shù)據(jù)結(jié)構(gòu)和相關(guān)算法的知識(shí)。通篇以一種趣味方式來敘述,大量引用了各種各樣的生活知識(shí)來類比,并充分運(yùn)用圖形語言來體現(xiàn)抽象內(nèi)容,對(duì)數(shù)據(jù)結(jié)構(gòu)所涉及到的一些經(jīng)典算法做到逐行分析、多算法比較。與市場上的同類數(shù)據(jù)結(jié)構(gòu)圖書相比,本書內(nèi)容趣味易讀,算法講解細(xì)致深刻,是一本非常適合自學(xué)的讀物。
  本書主要內(nèi)容包含:數(shù)據(jù)結(jié)構(gòu)介紹、算法推導(dǎo)大O階的方法;順序結(jié)構(gòu)與鏈?zhǔn)浇Y(jié)構(gòu)差異、棧與隊(duì)列的應(yīng)用;串的樸素模式匹配、KMP模式匹配算法;二叉樹前中后序遍歷、赫夫曼樹及應(yīng)用;圖的深度、廣度遍歷;最小生成樹兩種算法、最短路徑兩種算法;拓?fù)渑判蚺c關(guān)鍵路徑算法;折半查找、插值查找、斐波那契查找等靜態(tài)查找;稠密索引、分塊索引、倒排索引等索引技術(shù);二叉排序樹、平衡二叉樹等動(dòng)態(tài)查找;B樹、B+樹技術(shù),散列表技術(shù);冒泡、選擇、插入等簡單排序;希爾、堆、歸并、快速等改進(jìn)排序……
本書適合學(xué)過一門編程語言的各類讀者,包括在讀的大中專計(jì)算機(jī)專業(yè)學(xué)生、想轉(zhuǎn)行做開發(fā)的非專業(yè)人員、欲考計(jì)算機(jī)研究生的應(yīng)屆或在職人員,以及工作后需要補(bǔ)學(xué)或溫習(xí)數(shù)據(jù)結(jié)構(gòu)和算法的程序員等

作者簡介

  一個(gè)被讀者譽(yù)為很適合寫IT技術(shù)書的家伙?!洞笤捲O(shè)計(jì)模式》作者。此書07年末出版至今已經(jīng)簡體版印刷9次、繁體版印刷6次,取得了較好的成績,開創(chuàng)了一種適合國人閱讀的趣味講解IT知識(shí)的風(fēng)格模式。其本人參與過政府、證券、游戲、交通等多種行業(yè)的軟件開發(fā)及項(xiàng)目管理工作,也曾做過軟件培訓(xùn)的教師。因曾有過兩年半高中數(shù)學(xué)教學(xué)的獨(dú)特經(jīng)歷,使得其書作當(dāng)中處處以初學(xué)者視角考慮和分析問題,他成為了當(dāng)前很受歡迎的IT技術(shù)圖書作者之一。

書籍目錄

第1章 數(shù)據(jù)結(jié)構(gòu)緒論
 1.1 開 場 白
 1.2 你數(shù)據(jù)結(jié)構(gòu)怎么學(xué)的?
 1.3 數(shù)據(jù)結(jié)構(gòu)起源
 1.4 基本概念和術(shù)語
  1.4.1 數(shù)據(jù)
  1.4.2 數(shù)據(jù)元素
  1.4.3 數(shù)據(jù)項(xiàng)
  1.4.4 數(shù)據(jù)對(duì)象
  1.4.5 數(shù)據(jù)結(jié)構(gòu)
 1.5 邏輯結(jié)構(gòu)與物理結(jié)構(gòu)
  1.5.1 邏輯結(jié)構(gòu)
  1.5.2 物理結(jié)構(gòu)
 1.6 抽象數(shù)據(jù)類型
  1.6.1 數(shù)據(jù)類型
  1.6.2 抽象數(shù)據(jù)類型
 1.7 總結(jié)回顧
 1.8 結(jié) 尾 語
第2章 算法
 2.1 開 場 白
 2.2 數(shù)據(jù)結(jié)構(gòu)與算法關(guān)系
 2.3 兩種算法的比較
 2.4 算法定義
 2.5 算法的特性
  2.5.1 輸入輸出
  2.5.2 有窮性
  2.5.3 確定性
  2.5.4 可行性
 2.6 算法設(shè)計(jì)的要求
  2.6.1 正確性
  2.6.2 可讀性
  2.6.3 健壯性
  2.6.4 時(shí)間效率高和存儲(chǔ)量低
 2.7 算法效率的度量方法
  2.7.1 事后統(tǒng)計(jì)方法
  2.7.2 事前分析估算方法
 2.8 函數(shù)的漸近增長
 2.9 算法時(shí)間復(fù)雜度
  2.9.1 算法時(shí)間復(fù)雜度定義
  2.9.2 推導(dǎo)大O階方法
  2.9.3 常數(shù)階
  2.9.4 線性階
  2.9.5 對(duì)數(shù)階
  2.9.6 平方階
 2.10 常見的時(shí)間復(fù)雜度
 2.11 最壞情況與平均情況
 2.12 算法空間復(fù)雜度
 2.13 總結(jié)回顧
 2.14 結(jié) 尾 語
第3章 線性表
 3.1 開 場 白
 3.2 線性表的定義
 3.3 線性表的抽象數(shù)據(jù)類型
 3.4 線性表的順序存儲(chǔ)結(jié)構(gòu)
  3.4.1 順序存儲(chǔ)定義
  3.4.2 順序存儲(chǔ)方式
  3.4.3 數(shù)據(jù)長度與線性表長度區(qū)別
  3.4.4 地址計(jì)算方法
 3.5 順序存儲(chǔ)結(jié)構(gòu)的插入與刪除
  3.5.1 獲得元素操作
  3.5.2 插入操作
  3.5.3 刪除操作
  3.5.4 線性表順序存儲(chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn)
 3.6 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
  3.6.1 順序存儲(chǔ)結(jié)構(gòu)不足的解決辦法
  3.6.2 線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)定義
  3.6.3 頭指針與頭結(jié)點(diǎn)的異同
  3.6.4 線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)代碼描述
 3.7 單鏈表的讀取
 3.8 單鏈表的插入與刪除
  3.8.1 單鏈表的插入
  3.8.2 單鏈表的刪除
 3.9 單鏈表的整表創(chuàng)建
 3.10 單鏈表的整表刪除
 3.11 單鏈表結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)優(yōu)缺點(diǎn)
 3.12 靜態(tài)鏈表
  3.12.1 靜態(tài)鏈表的插入操作
  3.12.2 靜態(tài)鏈表的刪除操作
  3.12.3 靜態(tài)鏈表優(yōu)缺點(diǎn)
 3.13 循環(huán)鏈表
 3.14 雙向鏈表
 3.15 總結(jié)回顧
 3.16 結(jié) 尾 語
第4章 棧與隊(duì)列
 4.1 開 場 白
 4.2 棧的定義
  4.2.1 棧的定義
  4.2.2 進(jìn)棧出棧變化形式
 4.3 棧的抽象數(shù)據(jù)類型
 4.4 棧的順序存儲(chǔ)結(jié)構(gòu)及實(shí)現(xiàn)
  4.4.1 棧的順序存儲(chǔ)結(jié)構(gòu)
  4.4.2 棧的順序存儲(chǔ)結(jié)構(gòu)進(jìn)棧操作
  4.4.3 棧的順序存儲(chǔ)結(jié)構(gòu)出棧操作
 4.5 兩棧共享空間
 4.6 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及實(shí)現(xiàn)
  4.6.1 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
  4.6.2 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)進(jìn)棧操作
  4.6.3 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)出棧操作
 4.7 棧的作用
 4.8 棧的應(yīng)用——遞歸
  4.8.1 斐波那契數(shù)列實(shí)現(xiàn)
  4.8.2 遞歸定義
 4.9 棧的應(yīng)用——四則運(yùn)算表達(dá)式求值
  4.9.1 后綴(逆波蘭)表示法定義
  4.9.2 后綴表達(dá)式計(jì)算結(jié)果
  4.9.3 中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式
 4.10 隊(duì)列的定義
 4.11 隊(duì)列的抽象數(shù)據(jù)類型
 4.12 循環(huán)隊(duì)列
  4.12.1 隊(duì)列順序存儲(chǔ)的不足
  4.12.2 循環(huán)隊(duì)列定義
 4.13 隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)及實(shí)現(xiàn)
  4.13.1 隊(duì)列鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)入隊(duì)操作
  4.13.2 隊(duì)列鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)出隊(duì)操作
 4.14 總結(jié)回顧
 4.15 結(jié) 尾 語
第5章 串
 5.1開場白
 5.2 串的定義
 5.3 串的比較
 5.4 串的抽象數(shù)據(jù)類型
 5.5 串的存儲(chǔ)結(jié)構(gòu)
  5.5.1 串的順序存儲(chǔ)結(jié)構(gòu)
  5.5.2 串的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
 5.6 樸素的模式匹配算法
 5.7 KMP模式匹配算法
  5.7.1 KMP模式匹配算法原理
  5.7.2 next數(shù)組值推導(dǎo)
  5.7.3 KMP模式匹配算法實(shí)現(xiàn)
  5.7.4 KMP模式匹配算法改進(jìn)
  5.7.5 nextval數(shù)組值推導(dǎo)
 5.8 總結(jié)回顧
 5.9 結(jié) 尾 語
第6章 樹
 6.1 開 場 白
 6.2 樹的定義
  6.2.1 結(jié)點(diǎn)分類
  6.2.2 結(jié)點(diǎn)間關(guān)系
  6.2.3 樹的其他相關(guān)概念
 6.3 樹的抽象數(shù)據(jù)類型
 6.4 樹的存儲(chǔ)結(jié)構(gòu)
  6.4.1 雙親表示法
  6.4.2 孩子表示法
  6.4.3 孩子兄弟表示法
 6.5 二叉樹的定義
  6.5.1 二叉樹特點(diǎn)
  6.5.2 特殊二叉樹
 6.6 二叉樹的性質(zhì)
  6.6.1 二叉樹性質(zhì)1
  6.6.2 二叉樹性質(zhì)2
  6.6.3 二叉樹性質(zhì)3
  6.6.4 二叉樹性質(zhì)4
  6.6.5 二叉樹性質(zhì)5
 6.7 二叉樹的存儲(chǔ)結(jié)構(gòu)
  6.7.1 二叉樹順序存儲(chǔ)結(jié)構(gòu)
  6.7.2 二叉鏈表
 6.8 遍歷二叉樹
  6.8.1 二叉樹遍歷原理
  6.8.2 二叉樹遍歷方法
  6.8.3 前序遍歷算法
  6.8.4 中序遍歷算法
  6.8.5 后序遍歷算法
  6.8.6 推導(dǎo)遍歷結(jié)果
 6.9 二叉樹的建立
 6.10 線索二叉樹
  6.10.1 線索二叉樹原理
  6.10.2 線索二叉樹結(jié)構(gòu)實(shí)現(xiàn)
 6.11 樹、森林與二叉樹的轉(zhuǎn)換
  6.11.1 樹轉(zhuǎn)換為二叉樹
  6.11.2 森林轉(zhuǎn)換為二叉樹
  6.11.3 二叉樹轉(zhuǎn)換為樹
  6.11.4 二叉樹轉(zhuǎn)換為森林
  6.11.5 樹與森林的遍歷
 6.12 赫夫曼樹及其應(yīng)用
  6.12.1 赫夫曼樹
  6.12.2 赫夫曼樹定義與原理
  6.12.3 赫夫曼編碼
 6.13 總結(jié)回顧
 6.14 結(jié) 尾 語
第7章 圖
 7.1 開 場 白
 7.2 圖的定義
  7.2.1 各種圖定義
  7.2.2 圖的頂點(diǎn)與邊間關(guān)系
  7.2.3 連通圖相關(guān)術(shù)語
  7.2.4 圖的定義與術(shù)語總結(jié)
 7.3 圖的抽象數(shù)據(jù)類型
 7.4 圖的存儲(chǔ)結(jié)構(gòu)
  7.4.1 鄰接矩陣
  7.4.2 鄰接表
  7.4.3 十字鏈表
  7.4.4 鄰接多重表
  7.4.5 邊集數(shù)組
 7.5 圖的遍歷
  7.5.1 深度優(yōu)先遍歷
  7.5.2 廣度優(yōu)先遍歷
 7.6 最小生成樹
  7.6.1 普里姆(Prim)算法
  7.6.2 克魯斯卡爾(Kruskal)算法
 7.7 最短路徑
  7.7.1 迪杰斯特拉(Dijkstra)算法
  7.7.2 弗洛伊德(Floyd)算法
 7.8 拓?fù)渑判?br />  7.8.1 拓?fù)渑判蚪榻B
  7.8.2 拓?fù)渑判蛩惴?br /> 7.9 關(guān)鍵路徑
  7.9.1 關(guān)鍵路徑算法原理
  7.9.2 關(guān)鍵路徑算法
 7.10 總結(jié)回顧
 7.11 結(jié) 尾 語
第8章 查找
 8.1 開 場 白
 8.2 查找概論
 8.3 順序表查找
  8.3.1 順序表查找算法
  8.3.2 順序表查找優(yōu)化
 8.4 有序表查找
  8.4.1 折半查找
  8.4.2 插值查找
  8.4.3 斐波那契查找
 8.5 線性索引查找
  8.5.1 稠密索引
  8.5.2 分塊索引
  8.5.3 倒排索引
 8.6 二叉排序樹
  8.6.1 二叉排序樹查找操作
  8.6.2 二叉排序樹插入操作
  8.6.3 二叉排序樹刪除操作
  8.6.4 二叉排序樹總結(jié)
 8.7 平衡二叉樹(AVL樹)
  8.7.1 平衡二叉樹實(shí)現(xiàn)原理
  8.7.2 平衡二叉樹實(shí)現(xiàn)算法
 8.8 多路查找樹(B樹)
  8.8.1 2-3樹
  8.8.2 2-3-4樹
  8.8.3 B樹
  8.8.4 B+樹
 8.9 散列表查找(哈希表)概述
  8.9.1 散列表查找定義
  8.9.2 散列表查找步驟
 8.10 散列函數(shù)的構(gòu)造方法
  8.10.1 直接定址法
  8.10.2 數(shù)字分析法
  8.10.3 平方取中法
  8.10.4 折疊法
  8.10.5 除留余數(shù)法
  8.10.6 隨機(jī)數(shù)法
 8.11 處理散列沖突的方法
  8.11.1 開放定址法
  8.11.2 再散列函數(shù)法
  8.11.3 鏈地址法
  8.11.4 公共溢出區(qū)法
 8.12 散列表查找實(shí)現(xiàn)
  8.12.1 散列表查找算法實(shí)現(xiàn)
  8.12.2 散列表查找性能分析
 8.13 總結(jié)回顧
 8.14 結(jié) 尾 語
第9章 排序
 9.1 開 場 白
 9.2 排序的基本概念與分類
  9.2.1 排序的穩(wěn)定性
  9.2.2 內(nèi)排序與外排序
  9.2.3 排序用到的結(jié)構(gòu)與函數(shù)
 9.3 冒泡排序
  9.3.1 最簡單排序?qū)崿F(xiàn)
  9.3.2 冒泡排序算法
  9.3.3 冒泡排序優(yōu)化
  9.3.4 冒泡排序復(fù)雜度分析
 9.4 簡單選擇排序
  9.4.1 簡單選擇排序算法
  9.4.2 簡單選擇排序復(fù)雜度分析
 9.5 直接插入排序
  9.5.1 直接插入排序算法
  9.5.2 直接插入排序復(fù)雜度分析
 9.6 希爾排序
  9.6.1 希爾排序原理
  9.6.2 希爾排序算法
  9.6.3 希爾排序復(fù)雜度分析
 9.7 堆 排 序
  9.7.1 堆排序算法
  9.7.2 堆排序復(fù)雜度分析
 9.8 歸并排序
  9.8.1 歸并排序算法
  9.8.2 歸并排序復(fù)雜度分析
  9.8.3 非遞歸實(shí)現(xiàn)歸并排序
 9.9 快速排序
  9.9.1 快速排序算法
  9.9.2 快速排序復(fù)雜度分析
  9.9.3 快速排序優(yōu)化
   1.優(yōu)化選取樞軸
   2.優(yōu)化不必要的交換
   3.優(yōu)化小數(shù)組時(shí)的排序方案
   4.優(yōu)化遞歸操作
 9.10 總結(jié)回顧
 9.11 結(jié) 尾 語
附錄 參考文獻(xiàn)

編輯推薦

《大話數(shù)據(jù)結(jié)構(gòu)》為超級(jí)暢銷書《大話設(shè)計(jì)模式》作者程杰潛心三年推出的扛鼎之作!以一個(gè)計(jì)算機(jī)教師教學(xué)為場景,講解數(shù)據(jù)結(jié)構(gòu)和相關(guān)算法的知識(shí)。通篇以一種趣味方式來敘述,大量引用了各種各樣的生活知識(shí)來類比,并充分運(yùn)用圖形語言來體現(xiàn)抽象內(nèi)容,對(duì)數(shù)據(jù)結(jié)構(gòu)所涉及到的一些經(jīng)典算法做到逐行分析、多算法比較。與市場上的同類數(shù)據(jù)結(jié)構(gòu)圖書相比,本書內(nèi)容趣味易讀,算法講解細(xì)致深刻,是一本非常適合自學(xué)的讀物。

名人推薦

超級(jí)暢銷書《大話設(shè)計(jì)模式》作者的新作!用戶群更為廣泛,寫作風(fēng)格一如既往,技術(shù)沉淀更加深厚,勢必掀起全民數(shù)據(jù)結(jié)構(gòu)的熱潮!

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    大話數(shù)據(jù)結(jié)構(gòu) PDF格式下載


用戶評(píng)論 (總計(jì)182條)

 
 

  •   以一個(gè)計(jì)算機(jī)教師教學(xué)為場景,講解數(shù)據(jù)結(jié)構(gòu)和相關(guān)算法的知識(shí)。通篇以一種趣味方式來敘述,大量引用了各種各樣的生活知識(shí)來類比,并充分運(yùn)用圖形語言來體現(xiàn)抽象內(nèi)容,對(duì)數(shù)據(jù)結(jié)構(gòu)所涉及到的一些經(jīng)典算法做到逐行分析、多算法比較。與市場上的同類數(shù)據(jù)結(jié)構(gòu)圖書相比,本書內(nèi)容趣味易讀,算法講解細(xì)致深刻,是一本非常適合自學(xué)的讀物
  •   前段時(shí)間找工作,之前自己沒有系統(tǒng)地學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),急需一本數(shù)據(jù)結(jié)構(gòu)的入門書籍。而且很喜歡程杰老師幽默生動(dòng)的講解方式,于是就立刻下單,并且一口氣看完了。覺得自己收獲頗多,不僅溫習(xí)了鏈表、棧、隊(duì)列的相關(guān)知識(shí),還對(duì)先前不了解的樹和圖的知識(shí)有了深刻的認(rèn)識(shí)。
    這本書非常非常適合入門,但是缺點(diǎn)也是明顯的:對(duì)比較深入的內(nèi)容更多的是介紹,而不是深入分析和代碼講解。所以說,想要更深入的學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法,我覺得還要讀一讀更深層次一點(diǎn)的書籍(算法導(dǎo)論等等)。
    不過真的非常喜歡這本書,給個(gè)5分?。。?br />
  •   之前看過大話設(shè)計(jì)模式,寫得比較好。拿到大話數(shù)據(jù)結(jié)構(gòu),大概看了一些,寫得還是通俗呢,通過大量的圖表來解釋算法,適合自學(xué)。
  •   我懷著負(fù)責(zé)的態(tài)度來評(píng)價(jià)這本書(僅一個(gè)學(xué)生的觀點(diǎn)):
    首先,我是一個(gè)本科大二計(jì)算機(jī)科班學(xué)生,已經(jīng)學(xué)過了數(shù)據(jù)結(jié)構(gòu)課程。然而,我學(xué)會(huì)的只是一個(gè)個(gè)極其抽象的concept,在我的課程設(shè)計(jì)和實(shí)踐項(xiàng)目中卻無法判斷和很好的使用這些很好的數(shù)據(jù)結(jié)構(gòu)和算法,這些很好的東西并沒有成為我得心應(yīng)手的工具,而是一些無法消化的詞典。我想放棄,因?yàn)樵诔汤蠋煹牟┛屠锟吹搅诉@本書的介紹我就開始關(guān)注了,前天終于到手了。我仔細(xì)地看著,完成快一半了。感受如下:
    (因?yàn)楸救瞬皇桥H?,不能發(fā)現(xiàn)程老師這本書的不好的地方,望大家指出,謝謝。)
    1、書很精美,排版舒適,讓我不再有教科書里的那種小字的折磨;
    2、字里行間就像口述一樣,沒有晦澀難懂的話,讀起來很輕松;
    3、內(nèi)容方面主次分明,很簡潔,并不是以代碼為主,而是以圖片為主(哈哈哈,還有超級(jí)瑪麗游戲圖片),至少讓我感覺影響深刻。
    4、從質(zhì)量上講,沒的說,因?yàn)槲艺Z言設(shè)計(jì)基礎(chǔ)比較好,配合這本書,相信一定會(huì)讓我收獲頗豐,至少讓我有信心去設(shè)計(jì)我需要的東西,雖然我還很稚嫩,還需繼續(xù)學(xué)習(xí)。
  •   在看這本《大話數(shù)據(jù)結(jié)構(gòu)》之前,我看過兩本數(shù)據(jù)結(jié)構(gòu)的書,比較來說,還是這本比較適合入門,講的比較全面了,如果有省略的部分作者也在備注中說明了詳細(xì)的算法出處,對(duì)讀者很負(fù)責(zé)任。推薦想了解數(shù)據(jù)結(jié)構(gòu),考研、找工作等情況的人閱讀或者作為參考書。
  •   我不是科班學(xué)計(jì)算機(jī)的,卻也在這個(gè)行業(yè)做了好幾年,但是對(duì)基本的這些理論知識(shí),懂得很少。之前作者的《大話設(shè)計(jì)模式》的寫作形式,在設(shè)計(jì)模式方面讓我懂了許多,這次又出版了《數(shù)據(jù)結(jié)構(gòu)》的大話版,看到消息的同時(shí),就在網(wǎng)上下了訂單,今天剛剛收到書,就一口氣看了40幾頁,這個(gè)系列書最大的好處就是可以讓自己能夠堅(jiān)持看下去,相對(duì)其他書來說,更能通俗易懂一些。另外對(duì)作者的付出表示感謝,作者這樣的寫作精神很讓我感動(dòng)。
    作者在網(wǎng)上提供的勘誤信息,還有及時(shí)互動(dòng),都將成為這個(gè)系列書籍成功不可缺少的一部分。最后希望這本書可以給更多人帶來學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》信心和學(xué)到更多的知識(shí)。
  •   到貨后,一口氣看了三章,真的很享受!太適合程序員和開發(fā)人員了。大話設(shè)計(jì)模式,我看了很多遍了,工作中很有幫助;大話數(shù)據(jù)結(jié)構(gòu),相信收獲也很多。程老師作品,必屬精品!您真是一個(gè)適合寫IT技術(shù)書的家伙。
  •   不錯(cuò)!原來看過大話設(shè)計(jì)模式,慕名而來看的這個(gè),果然沒有辜負(fù)大家的期望。個(gè)人認(rèn)為合適想學(xué)習(xí)編程的人員自學(xué),或者作為大學(xué)數(shù)據(jù)結(jié)構(gòu)的輔助用書,里面很多講解比較趣味,也推薦給老師看,可以草考教學(xué)哦。
  •   這次一共買了四本書,都是關(guān)于《數(shù)據(jù)結(jié)構(gòu)與算法》方面,而閱讀首本書就是《大話數(shù)據(jù)結(jié)構(gòu)》,通讀全篇后,又讓我用新的眼光去理解數(shù)據(jù)結(jié)構(gòu)原理與應(yīng)用場所;近一步學(xué)習(xí)了一種研讀的方法。
  •   前段時(shí)間看完了《大話設(shè)計(jì)模式》,從書的一開頭就引入一個(gè)菜鳥和大蝦的故事,直至貫穿全書。生動(dòng)、形象,很喜歡這種小說式的技術(shù)書。由于上次我看的是電子版,因此,有好多重要的知識(shí)點(diǎn)沒有做好筆記。也正因?yàn)槿绱耍@次下定決心買了本《大話數(shù)據(jù)結(jié)構(gòu)》,正好補(bǔ)充了我這方面的不足。支持程杰,加油!
  •   你想重溫?cái)?shù)據(jù)結(jié)構(gòu)嗎?您還在對(duì)算法擔(dān)心嗎?有了大話數(shù)據(jù)結(jié)構(gòu),您可以吃嘛嘛香,再也無需為數(shù)據(jù)結(jié)構(gòu)所煩惱
  •   剛買,讀過大話設(shè)計(jì)模式,不得不說讓人看了沒有那種干涉的感覺。
    這次買數(shù)據(jù)結(jié)構(gòu),雖然這版還有很多勘誤,不過還是急著下單了,一是喜歡作者的風(fēng)格,二是為了能重新溫故一下數(shù)據(jù)結(jié)構(gòu)。
    不過作者說勘誤10分鐘就能搞定,坑爹??!搞了我將近25分鐘,累??!
  •   作者以上課的方式來引導(dǎo)我們學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),而且舉了很多有趣的例子,書中也插入了很多圖片更適合我們理解,對(duì)一些比較重要的算法采用一步一步的方式教我們?nèi)ダ斫猓赃@本書作為學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的入門書籍是非常不錯(cuò)的選擇,書上的代碼是用C寫的,學(xué)習(xí)的時(shí)候需要結(jié)合作者提供的代碼多想多練
  •   我是聽了郝斌的C語言和數(shù)據(jù)結(jié)構(gòu)之后才知道了數(shù)據(jù)結(jié)構(gòu)的重要性,知道了原來學(xué)習(xí)也可以變得這么簡單和快樂,知道了這世上還有這么好的老師,也由此喜歡上了編程.我覺得無論學(xué)什么東西入門是最難的,而學(xué)不學(xué)的好興趣則很重要,這本大話數(shù)據(jù)結(jié)構(gòu)確實(shí)是一本符合我的標(biāo)準(zhǔn)的好書,他能帶你輕松的入門,讓你在學(xué)習(xí)的過程中保持學(xué)習(xí)的興趣,讓你有學(xué)下去的動(dòng)力,而不像一些專業(yè)的書一樣,讓你覺得學(xué)習(xí)就是一種折磨,
    當(dāng)你學(xué)完這本書以后,再回過頭去看嚴(yán)蔚敏的數(shù)據(jù)結(jié)構(gòu)就不會(huì)那么難了,我覺得這才是科學(xué)的學(xué)習(xí)方法!很感謝作者為我們創(chuàng)造了這么好的書,希望再接再厲,也為大學(xué)偽老師太多而深惡痛絕!
  •   之前看過大話設(shè)計(jì)模式,簡單易懂,這次買了數(shù)據(jù)結(jié)構(gòu),還是很容易看懂,而且之前覺得數(shù)據(jù)結(jié)構(gòu)比較難,比較枯燥,看了這本書完全不一樣
  •   看了大話設(shè)計(jì)模式,這本書寫的也蠻好,圖文并茂,很生動(dòng)的把大學(xué)學(xué)的數(shù)據(jù)結(jié)構(gòu)重新梳理了一遍~
  •   看了大話設(shè)計(jì)模式,讓我覺得很不錯(cuò)了,開發(fā)過程中也有用到當(dāng)著的設(shè)計(jì)模式了。用了設(shè)計(jì)模式,我再也不那么需求變更了。數(shù)據(jù)結(jié)構(gòu),可是說是軟件設(shè)計(jì)的重中之重。大學(xué)的時(shí)候有學(xué)過一點(diǎn)了,不過學(xué)得是云里霧里的,很是不明白了。對(duì)這邊書很是期待啊!博客園中看了幾篇了,還不錯(cuò)??!
  •   其實(shí)一直想好好學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),但是始終有一種敬畏感,所以一直沒學(xué)好,教材也換了無數(shù)本,感覺就是不太明白,這本書剛收到,真的很好,感覺是一個(gè)耐心的老師孜孜不倦的教誨,語言平易近人,不會(huì)像其他的教材似的,一上來就堆一堆的專業(yè)名詞。感覺很好,我會(huì)努力看下去,謝謝作者這么好的書,造福于廣大學(xué)生,希望您繼續(xù)出大話系列叢書,例如操作系統(tǒng)呀,組成原理呀!!向作者致敬!?。。?!
  •   大一上過數(shù)據(jù)結(jié)構(gòu)這門課,但是三年過去忘得差不多了,買了這本《大話數(shù)據(jù)結(jié)構(gòu)》打算自學(xué)一遍,從頭再來!書寫的很不錯(cuò),和適合自學(xué),讀起來輕松加愉快。
  •   作者詳細(xì)描述了各種經(jīng)典數(shù)據(jù)結(jié)構(gòu)和算法原理以及實(shí)現(xiàn),運(yùn)用大量的圖例,生動(dòng)講解,只是有錯(cuò)誤之處,希望再版時(shí)能改進(jìn),總體還是很滿意的
  •   本書內(nèi)容很好,紙質(zhì)量也非常好。沒有古板的教科書式的說教,每個(gè)算法舉相應(yīng)的例子,并寫出這個(gè)例子的運(yùn)行的每一個(gè)步驟,來解讀數(shù)據(jù)結(jié)構(gòu)結(jié)合算法在運(yùn)行中的奧秘,非常適合讀者進(jìn)行自學(xué)。我非常喜歡這種學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的方法
  •   很有意思的方式講述數(shù)據(jù)結(jié)構(gòu),比教科書死板的好多了,他的大話設(shè)計(jì)模式也不錯(cuò)的。
  •   不想大話設(shè)計(jì)模式那樣講得特生動(dòng),也許數(shù)據(jù)結(jié)構(gòu)本來就有趣不起來吧。非老鳥級(jí)別的都推薦參考參考。
  •   書的質(zhì)量很好,內(nèi)容比較通熟易懂,個(gè)人認(rèn)為比較適合像我這樣的對(duì)數(shù)據(jù)結(jié)構(gòu)和算法了解不深的初學(xué)者
  •   數(shù)據(jù)結(jié)構(gòu)講得還可以,不過沒有大話設(shè)計(jì)模式來得好了~
  •   看完大話設(shè)計(jì)模式,我毫不猶豫地買了大話數(shù)據(jù)結(jié)構(gòu),真心很不錯(cuò),給大家推薦
  •   很喜歡大話設(shè)計(jì)模式,現(xiàn)在再重溫一下數(shù)據(jù)結(jié)構(gòu)~
  •   我是伍迷. 從大話設(shè)計(jì)模式到大話數(shù)據(jù)結(jié), 這二本書都是將抽象的原理轉(zhuǎn)化為通俗易懂的生活所事. 感謝他的創(chuàng)作.請(qǐng)繼續(xù)努力.......
  •   這是一本初學(xué)數(shù)據(jù)結(jié)構(gòu)的人看的書,語言風(fēng)格幽默,秉承了《大話》系列一貫的風(fēng)格,并且通過形象的比喻、舉例,將初學(xué)者難懂難理解的地方講得很是透徹,比起其他的教科書式的內(nèi)容,這本書可以說是令人耳目一新。
  •   大話數(shù)據(jù)結(jié)構(gòu)——超級(jí)暢銷書《大..”
    挺好的
  •   我對(duì)數(shù)據(jù)結(jié)構(gòu)很無奈!之前我有清華,嚴(yán)的那本書,但他都是偽算法,不懂實(shí)際編程,這本書通俗易懂里面的圖片解釋的也很直觀。支持!??!
  •   一翻開此書就有種想一下子看完的感覺,跟大話設(shè)計(jì)模式一樣,作者以講故事的方式來講解數(shù)據(jù)結(jié)構(gòu)的知識(shí),容易理解還非常有趣
  •   數(shù)據(jù)結(jié)構(gòu)是要鉆進(jìn)去學(xué)才會(huì)有意思的東西,大部分人會(huì)覺得很枯燥然后睡著,然后在自己再次有激情的時(shí)候繼續(xù)學(xué)。不過至少這本書會(huì)讓你不那么想睡,數(shù)據(jù)結(jié)構(gòu)一旦在自己腦海里面建立了模型,剩下的都是算法實(shí)現(xiàn)的問題。能夠讓讀者不那么想睡的數(shù)據(jù)結(jié)構(gòu)的書是非常成功的。
  •   把前面以及后面排序部分全部看完,我自己用java重新實(shí)現(xiàn)過,語言非常好,代碼也簡短,可見讀者精心設(shè)計(jì)過。感覺非常適合入門,有些基礎(chǔ)點(diǎn)講得很細(xì)致,數(shù)學(xué)不好的同學(xué)可以獲益了。但是在一些難的地方,往往就簡短跳過了,或者叫讀者直接去參考算法導(dǎo)論(我汗...),不過對(duì)于入門級(jí)的書來說,算是寫得非常好了,如果想更加深入,請(qǐng)有基礎(chǔ)了再去看算法導(dǎo)論,總體上來說給個(gè)五星不過分
  •   數(shù)據(jù)結(jié)構(gòu)這門課本身比較難,但是這本大話數(shù)據(jù)結(jié)構(gòu)講的很淺顯易懂,很適合入門,很喜歡!
  •   很喜歡期待的一本書,因?yàn)橛X得作者很不錯(cuò),當(dāng)年在學(xué)校圖書館偶然看到作者的《大話設(shè)計(jì)模式》,語言輕松愉快,不像教條一般的教科書只是催眠,能夠讓人愉快的讀下去,很不錯(cuò)。推薦計(jì)算機(jī)相關(guān)專業(yè)還在學(xué)校的童鞋們一定要讀。
  •   數(shù)據(jù)結(jié)構(gòu)一直是自己的硬傷,真正要開始研究算法和數(shù)據(jù)結(jié)構(gòu)了,這對(duì)做大型項(xiàng)目有很大幫助,不能再停留膚淺層面了
  •   我曾在網(wǎng)上看過數(shù)據(jù)結(jié)構(gòu)相關(guān)的教程,都覺得沒意思很枯燥
    大話數(shù)據(jù)結(jié)構(gòu)卻不同,不但有趣而且能真正學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),絕非簡單介紹
  •   一本非常值得擁有的書,程杰的大話設(shè)計(jì)模式我買了,感覺非常好,所以這本書我也毫不猶豫地下了單,簡單看了一下知道就是我所要的東西,從來沒有過這種想看專業(yè)書的沖動(dòng),現(xiàn)在工作忙抽時(shí)間慢慢學(xué)習(xí)。。。
  •   大話數(shù)據(jù)結(jié)構(gòu)是一本很好的書,講得簡單明了,喜歡
  •   學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的好書,大話系統(tǒng)都挺好的。
  •   一本很好的大話數(shù)據(jù)結(jié)構(gòu)
  •   之前就喜歡程杰所著的《大話設(shè)計(jì)模式》,真正搞學(xué)問的人,是擅長將晦澀的道理闡述得簡單明了,詼諧幽默的,而“大話”系列就是這樣的書,強(qiáng)烈推薦,五星級(jí)。
  •   大話數(shù)據(jù)結(jié)構(gòu)。剛收到很贊,不斷學(xué)習(xí)
  •   我是看了大話設(shè)計(jì)模式,然后來買這本的,非常不錯(cuò)的書,昨天收到的,已經(jīng)看了70頁了,講解的比較生動(dòng),還是很容易理解的。當(dāng)當(dāng)?shù)乃拓涍€是比較快的,周五下的單,周一就到了。紙張的質(zhì)量不錯(cuò),估計(jì)不是盜版。
  •   百度過作者的《大話設(shè)計(jì)模式》,非常喜歡作者的寫作風(fēng)格,由淺入深,深入淺出
    這本書還沒開始看,但是肯定質(zhì)量也是上乘
  •   真是太棒了,以前學(xué)數(shù)據(jù)結(jié)構(gòu)老犯暈,概念抽象,剛開始還帶著挑戰(zhàn)的精神去閱讀,堅(jiān)持一段時(shí)間興趣盡失,再也不想翻了。 后來工作了,發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)非常有用,當(dāng)年的那本數(shù)據(jù)結(jié)構(gòu)也不復(fù)存在,就買了這本書,書中的描述太形象了,讀起來趣味十足,時(shí)不時(shí)還會(huì)呵呵一笑。
  •   以前看過作者的“大話設(shè)計(jì)模式”,很有收獲,這一本同樣也不錯(cuò),值得一讀!
  •   書還沒到,但是很期待,當(dāng)初感覺大話設(shè)計(jì)模式寫的非常的好,才考慮買這本書的
  •   還沒有開始看,是看過三遍大話設(shè)計(jì)模式才再來買這本書的,希望這本書像大話設(shè)計(jì)模式一樣精彩。
  •   書講的很不錯(cuò),

    但是的確不適合大眾人群看

    需要一定的C語言基礎(chǔ),和一點(diǎn)點(diǎn)計(jì)算機(jī)基礎(chǔ)才能看懂

    即使有基礎(chǔ)還是很難學(xué)習(xí),需要對(duì)不懂的詞組和含義去百度一下。

    如果學(xué)完肯定受益匪淺。

    不建議沒有計(jì)算機(jī)基礎(chǔ)和C語言基礎(chǔ)的同學(xué)
    只是因?yàn)榕d趣購買本書,內(nèi)容多而難,
    起碼得先去網(wǎng)上學(xué)教程把C語言基礎(chǔ)入個(gè)門

    起碼得知道m(xù)ain是什么
    printf是什么(輸入語句)
    scanf是什么(輸入語句)

    3種結(jié)構(gòu)是什么(順序結(jié)構(gòu),選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu),就像寫作文 順敘,倒敘 插敘 )

    if else while for switch 等等等等。。。


    給一點(diǎn)計(jì)算機(jī)系同學(xué)建議:
    IT方面學(xué)習(xí)網(wǎng)站有
    21視頻,
    我要自學(xué)網(wǎng),

    3家培訓(xùn)機(jī)構(gòu)是,傳智播客,華清遠(yuǎn)見,魔樂科技
    不是叫你們?nèi)ヅ嘤?xùn),你們?nèi)ル婓H搜索,這些培訓(xùn)機(jī)構(gòu)有非常多的免費(fèi)課程觀看

    和去培訓(xùn)機(jī)構(gòu)唯一的區(qū)別就是沒有同學(xué),沒有周圍特定的環(huán)境和老師一對(duì)一的指導(dǎo)
    其他完全沒差別。


    還有給廣大熱愛學(xué)習(xí)但還不知道這個(gè)消息的人說一下:

    人人影視,還有其他幾家牛B的字幕組合力翻譯了非常非常多的
    國外公開課的課程,非常有益,字幕都是中英雙字幕的
    哈佛,MIT,劍橋………………等等

    具體的直接去搜索網(wǎng)易公開課。。網(wǎng)易把他們的課程經(jīng)過字幕組同意都放在哪里了,是個(gè)大集合


  •   和大話設(shè)計(jì)模式一樣,淺顯易懂,適合入門使用.物流也很快.
  •   非常好的一本書,講解得很透徹,數(shù)據(jù)結(jié)構(gòu)是編程中最重要的課程,
    通過看這本書了解了很多之前不懂的知識(shí),豁然開朗啊
  •   我覺得書的紙張不怎么好,內(nèi)容大概看了一下,也不是很好,沒有大話設(shè)計(jì)模式好看
  •   以前看過大話設(shè)計(jì)模式,這次是奔著作者去買的,買了以后感覺也沒讓自己失望,果然是精品。
  •   大話設(shè)計(jì)模式作者作品可以看一下
  •   剛到手,先隨便看了幾頁,很好,能把技術(shù)介紹寫得這么有趣而又不失深度和廣度,這才是好書。
    相比之下,大學(xué)里的教科書一個(gè)個(gè)板著臉,讓人望而生畏,難怪學(xué)計(jì)算機(jī)的同學(xué)們不少人學(xué)不好數(shù)據(jù)結(jié)構(gòu)。
    強(qiáng)烈建議學(xué)校里都換用這本書授課??!
  •   價(jià)格不便宜,但是確實(shí)能學(xué)到東西~
    現(xiàn)在很多程序設(shè)計(jì)中涉及到的算法并不多,但是知道一些基本的算法還是不錯(cuò)的,
    作者把難得東西講的簡單易懂,提倡提倡。
  •   數(shù)據(jù)結(jié)構(gòu)是軟件開發(fā)者必修的基礎(chǔ)課程,但是很多現(xiàn)代程序員往往依賴成熟的類庫、框架等忽略了數(shù)據(jù)結(jié)構(gòu)的存在,導(dǎo)致了編程質(zhì)量始終無法有質(zhì)的飛躍。本書用通俗易懂的方式講解了數(shù)據(jù)結(jié)構(gòu)知識(shí),讓日漸浮躁的治學(xué)得到平緩。
  •   讀過大話設(shè)計(jì)模式感覺不錯(cuò)
  •   內(nèi)容和以前大學(xué)的教材“數(shù)據(jù)結(jié)構(gòu)(C語言描述)”基本一致,但是很好理解,非常不錯(cuò)的教學(xué)嘗試。建議作為大學(xué)教材的課外補(bǔ)充。
    作者確實(shí)為中國教育和基礎(chǔ)技術(shù)人員作出很大貢獻(xiàn)。
  •   昨天收到書了,大概看了下,感覺一般般,沒《大話設(shè)計(jì)模式》那么好。
    感覺挺失望的。。。
  •   通俗易懂的一本書,不過書中仍然有一些低級(jí)知識(shí)錯(cuò)誤,比如154頁樹的抽象數(shù)據(jù)類型定義中概念的錯(cuò)誤。還有一些例子很生硬,不是特別能說明問題。整體看來還是不錯(cuò)的一本書。
  •   之前看數(shù)據(jù)結(jié)構(gòu)都是半桶水,現(xiàn)在看到程杰寫的這本,果斷收了。希望書本里面的描寫方式,讓人印象深刻。
  •   沒有想象中的那么好,跟他的《大話設(shè)計(jì)模式》沒法比。
  •   跟大話設(shè)計(jì)模式一樣精彩
  •   很好,跟大話設(shè)計(jì)模式一樣好...基本上還是很通俗易懂的
  •   作者的語言風(fēng)格非常好,引人入勝!能避免枯燥的理論學(xué)習(xí),讓人能在輕松的環(huán)境下領(lǐng)略數(shù)據(jù)結(jié)構(gòu)的精髓!另外,本書的紙張質(zhì)量、印刷質(zhì)量都挺好!
  •   挺好的,講得生動(dòng)有趣,適合自學(xué)或是鞏固專業(yè)知識(shí)的人,學(xué)好數(shù)據(jù)結(jié)構(gòu)很重要啊,希望中國多點(diǎn)這樣的書出現(xiàn)
  •   這本書將枯燥的數(shù)據(jù)結(jié)構(gòu)講解的非常有趣與使用,同該作者的另一本書一樣,都包含著作者個(gè)人許多自己的簡單、有趣的說明與理解,對(duì)于學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的同學(xué)來說絕對(duì)不容錯(cuò)過!
  •   這本書的印刷質(zhì)量很好,的確是對(duì)數(shù)據(jù)結(jié)構(gòu)的另一番解讀,比較貼近生活,語言風(fēng)格詼諧!
  •   這本書的講解通俗易懂,非常適合初學(xué)者,對(duì)就業(yè)和考研的數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)很有幫助
  •   老師以前的大話模式很是經(jīng)典,期待繼續(xù)
  •   豆瓣上的評(píng)論有的就不多說了,我個(gè)人感受,把一直云里霧里的時(shí)間復(fù)雜度等講的很清楚,有了這本書作基礎(chǔ),再去看外文的數(shù)據(jù)結(jié)構(gòu)的教材比較好。適合有C基礎(chǔ)的人看,可用于找工作的知識(shí)突擊
  •   對(duì)比了幾本數(shù)據(jù)結(jié)構(gòu)的書,有國外經(jīng)典的也有清華嚴(yán)蔚敏的,都是很注重?cái)?shù)學(xué)推導(dǎo),對(duì)于初學(xué)者來說理解起來會(huì)比較困難,這本書用通俗易懂的語句來描述解釋,不會(huì)讓人產(chǎn)生望而生畏的感覺,是入門的好材料!
  •   之前看過他寫的大話模式相當(dāng)好
  •   作者在開篇提出這個(gè)問題的時(shí)候,其實(shí)我是被問的啞口無言的。大學(xué)時(shí)代看著經(jīng)典的清華版數(shù)據(jù)結(jié)構(gòu),就是什么感覺都沒有。這本書,第一次讓我清楚的明白了數(shù)據(jù)結(jié)構(gòu)是什么,能干什么。我其實(shí)覺得后者更重要。
  •   這本書的定位非常明確,針對(duì)自學(xué)者所以講解明白透徹,是本好書!——考慮寫下一本吧,大話操作系統(tǒng),呵呵
  •   學(xué)校開的這門課好像是叫“計(jì)算機(jī)軟件基礎(chǔ)”,但是內(nèi)容講的統(tǒng)統(tǒng)都是“數(shù)據(jù)結(jié)構(gòu)”這方面的。這本書很不錯(cuò),可以拿來當(dāng)小說看。
  •   筆者以計(jì)算機(jī)教師的角度系統(tǒng)直觀介紹了數(shù)據(jù)結(jié)構(gòu)入門知識(shí) 堪稱IT屆著作典范 開辟了寓教于樂 易于入門 趣味性強(qiáng)
  •   通俗易懂,適合自學(xué)。結(jié)合數(shù)據(jù)結(jié)構(gòu)(C語言版)看,效果更佳。
  •   這本書看了幾十頁,還不錯(cuò),比較形象生動(dòng),想學(xué)數(shù)據(jù)結(jié)構(gòu)而沒基礎(chǔ)的人比較適合
  •   這本書很基礎(chǔ),適合我這個(gè)初接觸編程層次的人。對(duì)算法有個(gè)初步的認(rèn)識(shí),很生動(dòng)形象。值得購買
  •   跟大話模式一樣很新穎
  •   程杰的大話系類相當(dāng)不錯(cuò)!
  •   以前學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)不是很懂,但相信這本書會(huì)給人很好的解釋。沒想到國人也可以寫如此出色的書。
  •   寒假的時(shí)候買的,書寫的通俗易懂,很適合自學(xué)者。在寒假閱讀了這本書,現(xiàn)在上數(shù)據(jù)結(jié)構(gòu)課,很輕松
  •   一直對(duì)數(shù)據(jù)結(jié)構(gòu)有點(diǎn)恐懼,可是作者讓我對(duì)數(shù)據(jù)結(jié)構(gòu)有了新的理解。

    推薦想學(xué)號(hào)計(jì)算機(jī)的同學(xué)都看看,會(huì)讓你對(duì)數(shù)據(jù)結(jié)構(gòu)有新的認(rèn)識(shí)的。
  •   在學(xué)校學(xué)的數(shù)據(jù)結(jié)構(gòu)都還給老師了,看了本書,又重新溫習(xí)了一遍。
  •   一改我印象中的數(shù)據(jù)結(jié)構(gòu),作者把枯燥乏味的計(jì)算機(jī)核心課程變得生動(dòng),絕對(duì)值得一看!
  •   我超愛“大話”系列,要么幽默風(fēng)趣,要么講解清楚,圖表還多,人家這才叫寫書啊!
  •   數(shù)據(jù)結(jié)構(gòu)本是很枯燥無味很難懂的,但這本書卻有滋有味,很容易理解,很多 適合自學(xué),如果例子再多些可能就更好了,
  •   書還行,不過面向的應(yīng)該是學(xué)生和一些非IT行業(yè)人士。
    就當(dāng)是復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)了~~
  •   舉了很多生活中的例子,盡管語言上沒有“大話”系列特有的那么生動(dòng),但讀起來確感覺很形象,很好
  •   剛開始讀這本書,以前看過一些經(jīng)典的數(shù)據(jù),總感覺看不下去,希望我能讀完并理解數(shù)據(jù)結(jié)構(gòu)!
  •   恩這本書確實(shí)不錯(cuò)剛拿到看了幾頁感覺還是能看懂的,不像別的數(shù)據(jù)結(jié)構(gòu)的書那樣枯燥。
  •   內(nèi)容引人入勝,配以圖解,比較有趣,溫習(xí)數(shù)據(jù)結(jié)構(gòu)的好幫手
  •   這是我學(xué)數(shù)據(jù)結(jié)構(gòu)時(shí)老師推薦的一本書。

    有助于理解,但是我們學(xué)的是C++版的,所以語言代碼上沒什么幫助,但是因?yàn)榇髮W(xué)課堂總是很緊湊的,所以這本書在理解上幫了我很大的忙。
  •   可以給愛好電腦的人普及數(shù)據(jù)結(jié)構(gòu)知識(shí),對(duì)于在校生也可以作為一個(gè)參考閱讀,雖然書名很傻瓜,但內(nèi)容可不只是基礎(chǔ)的東西。
  •   簡單的例子讓你明白數(shù)據(jù)結(jié)構(gòu),非常適合初學(xué)者。
 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7