多任務(wù)下的數(shù)據(jù)結(jié)構(gòu)與算法

出版時間:2006-4  出版社:華中科技  作者:周偉明  頁數(shù):380  
Tag標(biāo)簽:無  

內(nèi)容概要

本書和傳統(tǒng)同類書籍的區(qū)別是除了介紹基本的數(shù)據(jù)結(jié)構(gòu)容器如棧、隊列、鏈表、樹、二叉樹、紅黑樹、AVL樹和圖之外,引進(jìn)了多任務(wù);還介紹了將任意數(shù)據(jù)結(jié)構(gòu)容器變成支持多任務(wù)的方法;另外,還增加了復(fù)合數(shù)據(jù)結(jié)構(gòu)和動態(tài)數(shù)據(jù)結(jié)構(gòu)等新內(nèi)容的介紹。在復(fù)合數(shù)據(jù)結(jié)構(gòu)中不僅介紹了哈希鏈表、哈希紅黑樹、哈希AVL樹等容器,還介紹了復(fù)合數(shù)據(jù)結(jié)構(gòu)的通用設(shè)計方法;在動態(tài)數(shù)據(jù)結(jié)構(gòu)中主要介紹了動態(tài)環(huán)形隊列、動態(tài)等尺寸內(nèi)存管理算法。在內(nèi)存管理中介紹了在應(yīng)用程序?qū)訉崿F(xiàn)的內(nèi)存垃圾回收算法、內(nèi)存泄漏檢查和內(nèi)存越界檢查的方法等。本書選取的內(nèi)容均側(cè)重于在實際中有廣泛應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和算法,有很好的商業(yè)使用價值。    本書大部分章節(jié)中都列舉并介紹了應(yīng)用實例,如用AVL樹等容器實現(xiàn)的搜索引擎、用數(shù)組實現(xiàn)HOOK管理、用鏈表實現(xiàn)的短信息系統(tǒng)中的CACHE管理、用哈希表實現(xiàn)WebServer中的CACHE文件管理和用哈希AVL樹實現(xiàn)抗DoS/DDoS攻擊等。    書中重點介紹了軟件的各種質(zhì)量特性如時間效率和空間效率之間的關(guān)系,介紹了如何在各種質(zhì)量特性間取得均衡的原則,并介紹了各種數(shù)據(jù)結(jié)構(gòu)算法的應(yīng)用場合和范圍。    本書介紹的所有數(shù)據(jù)結(jié)構(gòu)及算法都以不同復(fù)雜程度給出其編碼實現(xiàn)。為了便于讀者自學(xué),每章末附有小結(jié)和思考練習(xí)題。    本書可供高校計算機(jī)及相關(guān)專業(yè)作為教學(xué)參考書,對從事軟件開發(fā)與應(yīng)用的科研人員、工程技術(shù)人員以及其他相關(guān)人員也具有較高的參考價值。

作者簡介

周偉明,作者有較豐富的實踐經(jīng)驗,曾工作于美國加州的DASCOM Inc公司(現(xiàn)為IBM的全資子公司)和國內(nèi)某大型電信設(shè)備研發(fā)公司等各名企業(yè),一直從事網(wǎng)絡(luò)安全軟件、網(wǎng)絡(luò)服務(wù)器軟件,機(jī)器翻譯軟件、工作軟件、嵌入式系統(tǒng)軟件等研發(fā)工作,親自寫過的源代碼愈40萬行。

書籍目錄

1 緒論  1.1 引言 1.2 C語言編程常見問題分析  1.2.1 參數(shù)校驗問題  1.2.2 return語句的問題  1.2.3 while循環(huán)和for循環(huán)的問題  1.2.4 if語句的多個判斷問題  1.2.5 goto語句問題  1.2.6 switch…case和if…elseif的效率區(qū)別 1.3 任意數(shù)據(jù)類型處理  1.3.1 任意數(shù)據(jù)類型處理的設(shè)計方法  1.3.2 任意數(shù)據(jù)類型處理的實例  1.3.3 任意數(shù)據(jù)類型處理的回調(diào)函數(shù)封裝 1.4 多任務(wù)介紹  1.4.1 多任務(wù)簡介  1.4.2 鎖的概念  1.4.3 Windows下常用多任務(wù)操作函數(shù)  1.4.4 Linux/Unix下常用多任務(wù)操作函數(shù)  1.4.5 VxWorks下常用多任務(wù)操作函數(shù)  1.4.6 多任務(wù)函數(shù)的封裝 1.5 軟件設(shè)計簡介  1.5.1 軟件設(shè)計歷史簡述  1.5.2 微觀設(shè)計學(xué)原理簡介2 數(shù)組 2.1 ?! ?.1.1 棧的基本概念  2.1.2 棧的編碼實現(xiàn)  2.1.3 多任務(wù)棧的實現(xiàn) 2.2 隊列  2.2.1 隊列的基本概念和接口  2.2.2 環(huán)形隊列(Queue)  2.2.3 STL中的動態(tài)隊列(STL∷deque)  2.2.4 動態(tài)環(huán)形隊列   2.2.5 各種隊列的時間效率測試及分析   2.2.6 各種隊列的適用范圍   2.2.7 關(guān)于時間效率和空間效率的原則 2.3 排序表  2.3.1 排序算法介紹   2.3.2 快速排序算法  2.3.3 排序表的設(shè)計  2.3.4 非遞歸的快速排序算法  2.3.5 快速排序算法的復(fù)雜度分析  2.3.6 二分查找算法 2.4 實例:HOOK管理功能的實現(xiàn)  2.4.1 單個函數(shù)的HOOK實現(xiàn)  2.4.2 多個函數(shù)的HOOK實現(xiàn)  2.4.3 HOOK功能的應(yīng)用簡介  2.4.4 HOOK使用的注意事項  本章小結(jié) 習(xí)題與思考 3 鏈表 3.1 單向鏈表  3.1.1 單向鏈表的存儲表示  3.1.2 單向鏈表的接口設(shè)計  3.1.3 單向鏈表的基本功能編碼實現(xiàn) 3.2 單向鏈表的逐個節(jié)點遍歷  3.2.1 單向鏈表逐個節(jié)點遍歷基本概念  3.2.2 單向鏈表逐個節(jié)點遍歷編碼實現(xiàn) 3.3 單向鏈表的排序  3.3.1 插入排序  3.3.2 歸并插入排序   3.3.3 基數(shù)排序  3.4 雙向鏈表   3.4.1 雙向鏈表的基本概念  3.4.2 雙向鏈表的設(shè)計  3.4.3 雙向鏈表的編碼實現(xiàn) 3.5 使用整塊內(nèi)存的鏈表  3.5.1 整塊內(nèi)存鏈表的基本概念   3.5.2 整塊內(nèi)存鏈表的編碼實現(xiàn) 3.6 實例:使用鏈表管理短信息系統(tǒng)的CACHE   3.6.1 短信息系統(tǒng)的CACHE管理基本概念  3.6.2 短信息系統(tǒng)的發(fā)送和接收分析   3.6.3 短信息系統(tǒng)CACHE管理的編碼實現(xiàn)  本章小結(jié) 習(xí)題與思考4 哈希表5 樹6 復(fù)合二叉樹7 圖8 多任務(wù)算法9 內(nèi)存管理算法附 參考答案

媒體關(guān)注與評論

書評`

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    多任務(wù)下的數(shù)據(jù)結(jié)構(gòu)與算法 PDF格式下載


用戶評論 (總計21條)

 
 

  •   我買了一本,最近不小心把書掉到公交車上忘記拿了,準(zhǔn)備還買一本,書中代碼看起很舒服這書不適合處學(xué)者,本書每一章有個應(yīng)用實例,如搜索引擎、用數(shù)組實現(xiàn)HOOK管理、用鏈表實現(xiàn)的短信息系統(tǒng)中的CACHE管理、用哈希表實現(xiàn)WebServer中的CACHE文件管理和用哈希AVL樹實現(xiàn)抗DoS/DDoS攻擊等。這本書的主題雖然是被無數(shù)次重復(fù)過的數(shù)據(jù)結(jié)構(gòu)和算法,但是由于加了一個“多任務(wù)”的帽子,就煥發(fā)出了光芒。多核時代已經(jīng)到來,所以我們過去的很多經(jīng)驗都需要刷新了。這本書的作者顯然在這方面有很豐富的經(jīng)驗,書中從多任務(wù)的觀點出發(fā),針對很多傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計都作了探討。比如提到STL中傳統(tǒng)的iterator在多任務(wù)情況下要么會出錯,要么會導(dǎo)致分時效率低下,并且給出一個新的iterator,以適應(yīng)多任務(wù)的要求??梢姶_實是經(jīng)驗之談。不過最令我感到震動的,是這位作者對COM的嚴(yán)厲批判。說實話,我見過抱怨COM難用的,我自己也經(jīng)常抱怨COM不好理解,但從來沒見過對COM持否定和嚴(yán)厲批判態(tài)度的。這位作者在他的書中這樣寫道:“對于模板庫,或者任何一種技術(shù),都得看應(yīng)用的場合。其實,任何一種思想和方法的濫用都會導(dǎo)致嚴(yán)重的后果。就像設(shè)計模式的濫用一樣。例如,COM的濫用導(dǎo)致現(xiàn)在軟件質(zhì)量的嚴(yán)重下降。COM的設(shè)計可以說是軟件史上最嚴(yán)重的一次設(shè)計失誤,COM的設(shè)計違反了軟件設(shè)計的基本原理,但就這樣一個設(shè)計居然被推廣到整個業(yè)界使用,造成的危害實在太大了。我們可以看到,很多常用的軟件的BUG越來越多,動不動就死掉或要求發(fā)送錯誤報告什么的,很多情況估計都是拜COM所賜。雖然微軟現(xiàn)在再也不敢提COM了,但它的副作用短期內(nèi)仍然難以消除,特別是在中國,談到設(shè)計時很多人現(xiàn)在還在言必稱組件?!保?.1節(jié))“即使是一些著名大公司開發(fā)的軟件依然達(dá)不到很高的質(zhì)量,經(jīng)常出現(xiàn)版本升級越高BUG越多的情況。也許有人會問,這不是在危言聳聽吧?其實讀者只要看看自己手頭經(jīng)常在用的操作系統(tǒng)和辦公軟件就知道為什么說這句話了?!保?.5節(jié))“像前面提到的COM一樣,實際上是一種設(shè)計模式,但是被不加限制地推廣給用戶使用,而大部分用戶的水平還沒有上升到懂得在什么情況下該使用什么設(shè)計模式那么高的層次,后果便是設(shè)計模式被濫用,于是我們看到大型軟件的質(zhì)量是越來越糟糕。”(1.5節(jié))坦率的說,我對于作者的觀點是不贊成的,我手上沒有證據(jù)表明是COM導(dǎo)致了微軟軟件質(zhì)量的下降(真的下降了嗎?至少我不覺得今天的Word2003比10年前的Word95更容易崩潰。)。不過我贊賞這位作者敢于說出自己真實想法的勇氣。因為怕得罪人,或者怕被人拍扳轉(zhuǎn),而不敢把自己的想法說出來,是我們中國開發(fā)者的一個毛病。對什么事情有了看法,敢于說出來,而且敢于寫在正式發(fā)表的文章和圖書里面,這在今天是需要勇氣的。只有勇于提出異議,才能夠引起爭論,加強(qiáng)認(rèn)識。也許,你揭穿的真的就是狗皮膏藥,皇帝的新衣。可惜的是,作者在做出一些論斷的時候,并沒有給出確鑿的論據(jù)。也許是因為這本書的主題并不是“組件技術(shù)批判”,不宜離題太遠(yuǎn)吧。不過我很希望作者有機(jī)會能把自己的觀點系統(tǒng)地闡述一番,并且產(chǎn)生一些爭論。不管怎樣,這對于提升大家的認(rèn)識還是大有好處的。也希望聽到其他朋友對于COM以及這位作者的觀點講出自己的看法。
  •   雖然跟《多核計算與程序設(shè)計》中的內(nèi)容有些重疊,但講的比較細(xì),把各種數(shù)據(jù)結(jié)構(gòu)講的很明白。
  •   這是一本講數(shù)據(jù)結(jié)構(gòu)的好書,里面有很多代碼舉例,值得推薦
  •   個人研發(fā)讀研做了好幾年,感覺這本書,是作者用心寫的,算法編程角度讀者必有收益
  •   算法設(shè)計不錯,很適合想提高水平的程序員。
  •   作者寫的挺詳細(xì)的,目前正在閱讀中,感覺比學(xué)校的所謂的教科書好多了
  •   喜歡看"著"的書,這樣的書很好,這是作者用心寫的書,當(dāng)然,不太適合初學(xué)者,需要有一些編程的功底,不過,也可以拿來提高一下素養(yǎng)。
  •   印刷不錯,還沒來得及看,期待中。




  •   對于初學(xué)者和資深程序員,或者是系統(tǒng)分析專家,都是很不錯的選擇,需要細(xì)細(xì)品位。
  •   作者心血之作,值得一看
  •   為什么每次買的書書面都臟兮兮的??
  •   收藏了很久,發(fā)現(xiàn)降價了,立刻下單。當(dāng)當(dāng)很給力。
  •   很好,需要有些基礎(chǔ)的人看
  •   寫的不錯的一本書,和市面上泛濫的算法圖書相比,給人耳目一新的感覺,個人認(rèn)為不是很適合初學(xué)者
  •   書不錯,作者的經(jīng)驗寫實,有參考價值,希望多一點這樣的書出來。
  •   書的印刷不錯,不過最近買書太多,內(nèi)容還沒仔細(xì)看
  •   書已收到,是正版的。總打來說不錯,就是邊邊角角有些臟、有些干膠。。。
  •   說句實話,是看著一起買便宜才買的
  •   如果是有經(jīng)驗的程序員,還是可以發(fā)現(xiàn)里面還是有些隱藏的bug的,這點確實是遺憾
  •   數(shù)據(jù)結(jié)構(gòu)方面的書,值得一看、
  •   看了第一章,有點興趣,估計不錯
 

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

京ICP備13047387號-7