數(shù)據(jù)結構與算法

出版時間:2009-5  出版社:人民郵電出版社  作者:Michael McMillan  頁數(shù):260  譯者:呂秀峰,崔睿  
Tag標簽:無  

前言

在專業(yè)程序員的成長過程中,對于數(shù)據(jù)結構與算法的學習至關重要。雖然有許許多多關于數(shù)據(jù)結構與算法的書籍,但是這些書籍通常都是大學教材,并且是使用在大學里講授的Java語言或C++語言編寫的。C#言正在成為一種廣受歡迎的編程語言,這本書旨在面向C#程序員介紹數(shù)據(jù)結構與算法的基礎知識。C#言根植在一個功能非常豐富的.NET框架開發(fā)環(huán)境中。在.NET框架類庫中包含有一套數(shù)據(jù)結構類(也稱為群集類),這套類的范圍廣泛,從Array類、Array[,ist類牙llCollection類到Stack類和IlQueue類,再到HashTable類和lSortedList類。學習數(shù)據(jù)結構與算法的學生在學習如何實現(xiàn)它們之前可以先看看如何使用數(shù)據(jù)結構。以前,老師在構建完整的棧數(shù)據(jù)結構之前只能抽象地講解棧的概念,而現(xiàn)在老師可以通過向學生們展示如何用棧執(zhí)行一些計算(如數(shù)制之間的轉換),立即展示數(shù)據(jù)結構的實用工具。有了這些知識后,學生可以在課后學習數(shù)據(jù)結構(或算法)的基本原理,甚至可以構造他們自己的實現(xiàn)。本書主要提供了對數(shù)據(jù)結構與算法的實用概述,這是所有計算機程序員們需要知道和了解的?;谶@個原因,本書沒有涵蓋數(shù)據(jù)結構與算法的正規(guī)分析。因此,本書沒有一個數(shù)學公式,也一次都沒有提及大O分析(如果你不知道大O分析的含義,查看參考文獻中提到的任何一本書都可以)。相反,本書把各種數(shù)據(jù)結構與算法作為求解問題的工具。書中討論的數(shù)據(jù)結構與算法都用簡單的時間測試進行了性能比較。

內(nèi)容概要

 本書是在.NET框架下用C#語言實現(xiàn)數(shù)據(jù)結構和算法的第一本全面的參考書。本書介紹的方法非常實用,采用了時間測試而非大O表示法來分析算法性能。內(nèi)容涵蓋了數(shù)據(jù)結構和算法的基本原理,涉及數(shù)組、廣義表、鏈表、散列表、樹、圖、排序搜索算法以及更多概率算法和動態(tài)規(guī)則等高級算法。此外,書中還提供了.NET框架類庫中的C#語言實現(xiàn)的數(shù)據(jù)結構和算法。  本書適合作為C#數(shù)據(jù)結構課程的教材,同時也適合C#專業(yè)人士閱讀。

作者簡介

作者:(美國)Michael McMillan 譯者:呂秀鋒 崔睿

書籍目錄

第1章 Collections類、泛型類和Timing類概述  1.1 群集的定義  1.2 群集的描述   1.2.1 直接存取群集   1.2.2 順序存取群集   1.2.3 層次群集   1.2.4 組群集  1.3 CollectionBase類   1.3.1 用ArrayList實現(xiàn)Collection類   1.3.2 定義Collection類   1.3.3 實現(xiàn)Collection類  1.4 泛型編程  1.5 時間測試   1.5.1 一個簡單化的時間測試   1.5.2 用于.NET環(huán)境的時間測試   1.5.3 Timing Test類  小結  練習 第2章 數(shù)組和ArrayList  2.1 數(shù)組基本概念   2.1.1 數(shù)組的聲明和初始化   2.1.2 數(shù)組元素的設置和存取訪問   2.1.3 檢索數(shù)組元數(shù)據(jù)的方法和屬性   2.1.4 多維數(shù)組   2.1.5 參數(shù)數(shù)組   2.1.6 鋸齒狀數(shù)組 2.2 ArrayList類   2.2.1 ArrayList類的成員   2.2.2 應用ArrayList類  小結  練習 第3章 基礎排序算法  3.1 排序算法   3.1.1 數(shù)組類測試環(huán)境   3.1.2 冒泡排序   3.1.3 檢驗排序過程   3.1.4 選擇排序   3.1.5 插入排序  3.2 基礎排序算法的時間比較  小結  練習 第4章 基礎查找算法  4.1 順序查找   4.1.1 查找最小值和最大值   4.1.2 自組織數(shù)據(jù)加快順序查找速度  4.2 二叉查找算法  4.3 遞歸二叉查找算法  小結  練習 第5章 棧和隊列  5.1 棧、棧的實現(xiàn)以及Stack類   5.1.1 棧的操作   5.1.2 Stack類的實現(xiàn)  5.2 Stack類   5.2.1 Stack構造器方法   5.2.2 主要的棧操作   5.2.3 Peek方法   5.2.4 Clear方法   5.2.5 Contains方法   5.2.6 CopyTo方法和ToArray方法   5.2.7 Stack類的實例:十進制向多種進制的轉換  5.3 隊列、Queue類以及Queue類的實現(xiàn)   5.3.1 隊列的操作   5.3.2 Queue的實現(xiàn)   5.3.3 Queue類:實例應用   5.3.4 用隊列排序數(shù)據(jù)   5.3.5 源自Queue類的優(yōu)先隊列  小結  練習 第6章 BitArray類  6.1 激發(fā)的問題  6.2 位和位操作   6.2.1 二進制數(shù)制系統(tǒng)   6.2.2 處理二進制數(shù):按位運算符和移位運算符  6.3 按位運算符的應用  6.4 整數(shù)轉換成二進制形式的應用程序  6.5 移位的示例應用程序  6.6 BitArray類   6.6.1 使用BitArray類   6.6.2 更多BitArray類的方法和屬性  6.7 用BitArray來編寫埃拉托斯特尼篩法  6.8 BitArray與數(shù)組在埃拉托斯特尼篩法上的比較  小結  練習 第7章 字符串、String類和StringBuilder類第8章 模式匹配和文本處理第9章 構建字典:DictionaryBase類和SortedList類第10章 散列和Hashtable類第11章 鏈表 第12章 二叉樹和二叉查找樹第13章 集合 第14章 高級排序算法 第15章 用于查找的高級數(shù)據(jù)結構和算法第16章 圖和圖的算法第17章 高級算法 參考文獻 索引

章節(jié)摘錄

插圖:第1章 Collections類、泛型類和Timing類概述本書采用c#語言來討論數(shù)據(jù)結構與算法的開發(fā)和實現(xiàn)。書中用到的數(shù)據(jù)結構都可以在.NET框架類庫System.Collections中找到。本章會逐步展開群集的概念,首先討論自身特有的collection類的實現(xiàn)(采用數(shù)組作為我們實現(xiàn)的基礎),接著會介紹.NET框架中Collection類的內(nèi)容。泛型是c#語言2.0版新增加的一個重要補充,它允許C#程序員可以獨立地或者在一個類中編寫函數(shù)的某一個版本,而且不需要為了不同的數(shù)據(jù)類型而多次重載此函數(shù)。c#言2.0版還為幾種system.Collections數(shù)據(jù)結構實現(xiàn)泛型提供了一個專門的庫System.Collections.Generic。本章將向讀者介紹泛型編程。本章最后會介紹一種用戶定制的類——Timing類,后續(xù)的幾個章節(jié)將會用它來衡量數(shù)據(jù)結構與/或算法的性能。這個類將取代大O分析法,這不是因為大O分析法不重要,而是因為本書采取了一種更為實用的方法來分析數(shù)據(jù)結構與算法。1.1 群集的定義群集(Collection)是一種結構化的數(shù)據(jù)類型,它存儲數(shù)據(jù)并且提供數(shù)據(jù)向/從群集中添加、刪除和更新操作,以及對群集的不同屬性值的設置與返回操作。群集分為線性群集和非線性群集。線性群集是一張元素列表,表中的元素順次相連。線性群集中的元素通常由位置來決定次序(例如,第一個元素、第二個元素、第三個元素,依此類推)。在現(xiàn)實世界中,購物清單就是很好的線性群集實例,而在計算機中(當然這也是真實世界)則把數(shù)組設計成線性群集。

媒體關注與評論

“這是一本絕佳的介紹C#語言數(shù)據(jù)結構的優(yōu)秀著作,對于數(shù)據(jù)結構課程極具價值!”  ——CHOICE雜志

編輯推薦

隨著.NET框架的廣泛應用,C#已經(jīng)成為最受歡迎的程序設計語言之一。但是,市面上尚無用C#語言講述數(shù)據(jù)結構和算法的圖書,廣大C#程序員不得不將自 己轉換C++或Java描述的數(shù)據(jù)結構,費時費力,而且容易出錯。《數(shù)據(jù)結構與算法C#語言描述》填補了這一空白。而且更加難能可貴的是,作者基于自己多年的教學和實踐經(jīng)驗,從開發(fā)實戰(zhàn)出發(fā),采用了一種與一般數(shù)據(jù)結構圖書不同的講解方式:充分利 用.NET框架中現(xiàn)成的數(shù)據(jù)結構類,先講述各種數(shù)據(jù)結構怎么在開發(fā)中選用,怎樣用來解決實際問題,在有了感性認識之后,再深入研究如何實現(xiàn);同時,用更加 實用的時間測試方法代替常規(guī)的大O表示法來分析算法性能,避免了復雜的數(shù)學推導。書中除涵蓋了數(shù)組、廣義表、鏈表、散列表、樹、圖、排序、搜索等常規(guī)數(shù)據(jù) 結構和算法外,還討論了概率和動態(tài)規(guī)劃等方面的高級算法。中文版對原書的代碼進行了全面的調(diào)試,改正了不少原版存在的問題,保證了代碼的質(zhì)量和技術內(nèi)容的準確性。《數(shù)據(jù)結構與算法C#語言描述》是C#程序員不可或缺的實用參考書,也適合作為應用型高校相關專業(yè).NET平臺開發(fā)課程的教材。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    數(shù)據(jù)結構與算法 PDF格式下載


用戶評論 (總計72條)

 
 

  •   對過去讀過數(shù)據(jù)結構的人來說,看起來很順。優(yōu)先使用.net框架提供的函數(shù)和方法,它們的運行速度,無論如何也比書上教你的算法快(書上就是這么寫的);但書還是提供了你很多細節(jié),這些細節(jié),我過去沒有從網(wǎng)上搜到過,所以仍有看這本書的必要。
  •   此書非常不錯,用代碼代闡述了c#中數(shù)據(jù)結構的實現(xiàn),與大學的教課書相比少了數(shù)學推倒。
  •   最近在看數(shù)據(jù)結構,發(fā)現(xiàn)C#描述語言不錯,就仔細看下去,發(fā)現(xiàn)是個好東西,建議有興趣的朋友,仔細閱讀,大有裨益的。
  •   不光介紹數(shù)據(jù)結構,更重要的是告訴你如果去和c#中響應的類結合使用并有豐富的可執(zhí)行的例子
  •   比學校自編的C#數(shù)據(jù)結構教材好太多了
  •   很好看 對學習算法很有幫助
  •   實際工作可用的C#數(shù)據(jù)結構圖書
  •   C的數(shù)據(jù)結構學完之后,開始學C#了,感覺很不錯
  •   書很好,很實用。是高級程序員進階的好幫手。
  •   我買了這本書很不錯,但是自己看著很吃力。有些地方也搞不明白。后來我在獵豹網(wǎng)??从薪踢@門課程的,試聽了下感覺很不錯,講的很清楚,原來看書很不懂的地方,就一下子明白了。如果誰需要也可以去獵豹網(wǎng)校試聽一 下,分享給大家。
  •   不錯的書,值得C#程序員看,強烈推薦
  •   比較適合實際應用的一本書,看了很有收獲,期待繼續(xù)細看發(fā)現(xiàn)驚喜
  •   發(fā)貨速度快!書的內(nèi)容與質(zhì)量都不錯.
  •   書很好!正在研究中……
  •   里面講解人知識點, 還不錯, 要是能再深入一點就好了
  •   目前還在研究中,但書的內(nèi)容確實很好。
  •   不錯的書吧,給女朋友看的,但是她還沒看

    我用java的,翻了一下,感覺不錯
  •   內(nèi)容豐富,知識點全面,簡單明了!
  •   很系統(tǒng)很全面,就是有點難,希望對自己有幫助。
  •   通向高級C#的必讀書籍!
  •   需要慢慢閱讀,等待
  •   覺得很好,收貨很方便
  •   很好很好啊啊啊
  •   c#一定要看看很不錯的
  •   不錯,
    用得著
  •   買了沒看多少
  •   呃,我沒學到多少東西,希望能幫助更多人把,編程什么的實在不通
  •   這本書,雖然比起傳統(tǒng)的那些數(shù)據(jù)結構的書來說,算法的內(nèi)容略嫌少了點,但這本書有個好處,就是充分展示了C#語言與算法的結合,而且,都有具體的實現(xiàn)代碼,很適合作為學完C#之后想進一步提高自己算法能力水平的人看。
  •   書剛拿到手,簡單翻了一下。要學習數(shù)據(jù)結構,此書不能作為入門級,須對數(shù)據(jù)結構有一定的了解方可閱讀。之所以買這本書,主要原因是,現(xiàn)在c#很火,基于c#的數(shù)據(jù)結構應該看看,雖然數(shù)據(jù)結構原理都一樣,但是我想說的是,c#是封裝很好的語言,其中很多常用的數(shù)據(jù)結構已經(jīng)封裝好了,對于有一定編程經(jīng)驗的人來說,最重要的是如何運用這些。而這本書,就是介紹了c#封裝好的數(shù)據(jù)結構,以及c#一些獨有的數(shù)據(jù)結構。就像c++中,vector,list,deque,queue,stack,map等。
  •   個別算法講的比較清楚,不過部分分析不夠徹底,有些內(nèi)容很含糊。
  •   書中的代碼錯誤實在忒多,不是有一定水平的人就不要買了。
  •   很好的書,對中級程序員有一定的幫助
  •   書還沒看,先評論一下
  •   翻譯問題~~~書還可以~~
  •   這本書還不錯,不過翻譯得不是很好!有些專業(yè)術語翻譯得不夠確切!
  •   C#這方面的書比較少,值得看看
  •   還不錯。在學習中。
  •   學習中,結合C#比較好理解
  •   大體掃了一下,內(nèi)容還可以
  •   書面有點臟,還有不少膠,總體還可以。
  •   發(fā)貨還及時
  •   買回來沒怎么看,看了一點,寫的很詳細
  •   這本書只是把數(shù)據(jù)結構用C#代碼簡單表述了一遍,沒啥新意,算法也比較老套
  •   書還可以,就是有些東西太簡單了。不過對于鞏固知識的積累還是不錯。
    也很少看到C#版的數(shù)據(jù)結構和算法,所以還是值得看的。
  •   也許原著寫得很好,但是翻譯水平很一般。代碼寫的都不太清楚,或者不完全,而且其中還有很多錯誤,看起來比較麻煩。不適合初學者,有一定經(jīng)驗,擅長使用C#但不熟悉C,并希望在數(shù)據(jù)結構方面有所提高的人,看看倒也無妨。給我送過來的基本上是本8成新的書,很多頁角被折,背面封皮也被狠狠折了一下。尤其值得一提的是送書的那位兄弟,毫不夸張的說,渾身臟的像剛從垃圾堆里爬出來一樣,手上全是泥,指甲漆黑,好像剛扒過煤堆。經(jīng)常在當當買書,第一次遇到這樣的人送書。接過來第一件事就是吧塑料皮拆開扔掉,然后洗手。。。希望當當在快遞方面除了保證速度,也注意一下衛(wèi)生。
  •   這本書翻譯的確實很差,術語跟其他同類的書有出入,書太薄以至于講解的并不詳細,沒有類似概念的人,看懂還是比較難的,還如不學習下C的數(shù)據(jù)結構,感覺又是一本騙銀子的書~
  •   這本書雖說和C#語言聯(lián)系的比較緊密,也充分說明了C#語言中已經(jīng)實現(xiàn)的一些結構,對剛學習C#的來說還是不錯的,但要想深入的學習,個人建議這本書并不適合。
  •   想看看C#算法的,只看到本書了,寫的很普通,沒有太多精彩的部分,有點失望吧?。。?!
  •   幫室友帶的,他是點名要這書,看來是很經(jīng)典啦
  •   正在閱讀中 感覺很一般,,,,
  •   為什么我買的這本書沒有光盤?????
  •   內(nèi)容大致看了一下,還不錯。就是實例有點少了。
  •   內(nèi)容編排一般。。。
  •   等待閱讀~~等待閱讀~~等待閱讀~~
  •   翻譯的不清楚~~~可能想為了省一下紙張吧~~~
  •   書中錯誤很多,翻譯得太爛,程序代碼中有許多錯誤,實在不敢恭維翻譯者的耐心和水平!
  •   書中的錯誤基本達到每幾頁就有一個。我調(diào)試代碼的時候痛苦不堪,剛開始我根本沒有理解作者的良苦用心,大量的代碼錯誤使得我在debug的時候的改了許多地方,因此對數(shù)據(jù)結構的掌握更上一層,從這個角度來看,作者的確是用心良苦。故意弄出這么多錯誤還有編輯,也是非常從大義出發(fā),縱容了這么多錯誤最后感謝引進的人,看到這么多錯已然引進,這種不拘一格的開明思想17屆六種全會倡導所倡導的,這也是引進人員與時俱進的表現(xiàn)吧。有鑒于此,我本來想給1星,但是也從大義出發(fā),給了兩個星
  •   書不錯,就是錯誤多了點
  •   C# 描述 數(shù)據(jù)結構和算法的書 實在太少了 正準備學習中......
  •   我對亞馬遜的服務很滿意。比X東要好。我買了三本書,三天就到了。去取快件,發(fā)現(xiàn)包裹里還有泡沫,估計是為了書損壞弄得,很貼心,很喜歡。贊一個!
  •   后來買過一些其它的算法書,感覺這本要難懂一些,看評論原來翻譯很爛.之前都沒注意.覺得難懂就扔那了~~后悔~~
  •   這本書講解的還是不錯的 主要是用C#實現(xiàn)的,所以比較容易懂,
  •   學校推薦用書,還沒看,應該不錯
  •   我就買來翻了兩頁。哎
  •   感覺一般吧。等看完再說。
  •   介紹的內(nèi)容 把所有C#包含的數(shù)據(jù)處理都囊括了
  •   非常實用的一本書,不用轉化以前學過的數(shù)據(jù)結構與算法了
  •   不錯,就是里面的錯誤有點明顯
  •   比較全面,淺顯易懂。很經(jīng)典。
  •   質(zhì)量也可以,非常喜歡的啊
  •   慢慢閱讀,對編程挺有用
  •   數(shù)據(jù)結構…算法
 

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

京ICP備13047387號-7