出版時(shí)間:2009-5 出版社:人民郵電出版社 作者:Michael McMillan 頁(yè)數(shù):260 譯者:呂秀峰,崔睿
Tag標(biāo)簽:無(wú)
前言
在專(zhuān)業(yè)程序員的成長(zhǎng)過(guò)程中,對(duì)于數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí)至關(guān)重要。雖然有許許多多關(guān)于數(shù)據(jù)結(jié)構(gòu)與算法的書(shū)籍,但是這些書(shū)籍通常都是大學(xué)教材,并且是使用在大學(xué)里講授的Java語(yǔ)言或C++語(yǔ)言編寫(xiě)的。C#言正在成為一種廣受歡迎的編程語(yǔ)言,這本書(shū)旨在面向C#程序員介紹數(shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ)知識(shí)。C#言根植在一個(gè)功能非常豐富的.NET框架開(kāi)發(fā)環(huán)境中。在.NET框架類(lèi)庫(kù)中包含有一套數(shù)據(jù)結(jié)構(gòu)類(lèi)(也稱(chēng)為群集類(lèi)),這套類(lèi)的范圍廣泛,從Array類(lèi)、Array[,ist類(lèi)牙llCollection類(lèi)到Stack類(lèi)和IlQueue類(lèi),再到HashTable類(lèi)和lSortedList類(lèi)。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)生在學(xué)習(xí)如何實(shí)現(xiàn)它們之前可以先看看如何使用數(shù)據(jù)結(jié)構(gòu)。以前,老師在構(gòu)建完整的棧數(shù)據(jù)結(jié)構(gòu)之前只能抽象地講解棧的概念,而現(xiàn)在老師可以通過(guò)向?qū)W生們展示如何用棧執(zhí)行一些計(jì)算(如數(shù)制之間的轉(zhuǎn)換),立即展示數(shù)據(jù)結(jié)構(gòu)的實(shí)用工具。有了這些知識(shí)后,學(xué)生可以在課后學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)(或算法)的基本原理,甚至可以構(gòu)造他們自己的實(shí)現(xiàn)。本書(shū)主要提供了對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的實(shí)用概述,這是所有計(jì)算機(jī)程序員們需要知道和了解的?;谶@個(gè)原因,本書(shū)沒(méi)有涵蓋數(shù)據(jù)結(jié)構(gòu)與算法的正規(guī)分析。因此,本書(shū)沒(méi)有一個(gè)數(shù)學(xué)公式,也一次都沒(méi)有提及大O分析(如果你不知道大O分析的含義,查看參考文獻(xiàn)中提到的任何一本書(shū)都可以)。相反,本書(shū)把各種數(shù)據(jù)結(jié)構(gòu)與算法作為求解問(wèn)題的工具。書(shū)中討論的數(shù)據(jù)結(jié)構(gòu)與算法都用簡(jiǎn)單的時(shí)間測(cè)試進(jìn)行了性能比較。
內(nèi)容概要
本書(shū)是在.NET框架下用C#語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和算法的第一本全面的參考書(shū)。本書(shū)介紹的方法非常實(shí)用,采用了時(shí)間測(cè)試而非大O表示法來(lái)分析算法性能。內(nèi)容涵蓋了數(shù)據(jù)結(jié)構(gòu)和算法的基本原理,涉及數(shù)組、廣義表、鏈表、散列表、樹(shù)、圖、排序搜索算法以及更多概率算法和動(dòng)態(tài)規(guī)則等高級(jí)算法。此外,書(shū)中還提供了.NET框架類(lèi)庫(kù)中的C#語(yǔ)言實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和算法。 本書(shū)適合作為C#數(shù)據(jù)結(jié)構(gòu)課程的教材,同時(shí)也適合C#專(zhuān)業(yè)人士閱讀。
作者簡(jiǎn)介
作者:(美國(guó))Michael McMillan 譯者:呂秀鋒 崔睿
書(shū)籍目錄
第1章 Collections類(lèi)、泛型類(lèi)和Timing類(lèi)概述 1.1 群集的定義 1.2 群集的描述 1.2.1 直接存取群集 1.2.2 順序存取群集 1.2.3 層次群集 1.2.4 組群集 1.3 CollectionBase類(lèi) 1.3.1 用ArrayList實(shí)現(xiàn)Collection類(lèi) 1.3.2 定義Collection類(lèi) 1.3.3 實(shí)現(xiàn)Collection類(lèi) 1.4 泛型編程 1.5 時(shí)間測(cè)試 1.5.1 一個(gè)簡(jiǎn)單化的時(shí)間測(cè)試 1.5.2 用于.NET環(huán)境的時(shí)間測(cè)試 1.5.3 Timing Test類(lèi) 小結(jié) 練習(xí) 第2章 數(shù)組和ArrayList 2.1 數(shù)組基本概念 2.1.1 數(shù)組的聲明和初始化 2.1.2 數(shù)組元素的設(shè)置和存取訪問(wèn) 2.1.3 檢索數(shù)組元數(shù)據(jù)的方法和屬性 2.1.4 多維數(shù)組 2.1.5 參數(shù)數(shù)組 2.1.6 鋸齒狀數(shù)組 2.2 ArrayList類(lèi) 2.2.1 ArrayList類(lèi)的成員 2.2.2 應(yīng)用ArrayList類(lèi) 小結(jié) 練習(xí) 第3章 基礎(chǔ)排序算法 3.1 排序算法 3.1.1 數(shù)組類(lèi)測(cè)試環(huán)境 3.1.2 冒泡排序 3.1.3 檢驗(yàn)排序過(guò)程 3.1.4 選擇排序 3.1.5 插入排序 3.2 基礎(chǔ)排序算法的時(shí)間比較 小結(jié) 練習(xí) 第4章 基礎(chǔ)查找算法 4.1 順序查找 4.1.1 查找最小值和最大值 4.1.2 自組織數(shù)據(jù)加快順序查找速度 4.2 二叉查找算法 4.3 遞歸二叉查找算法 小結(jié) 練習(xí) 第5章 棧和隊(duì)列 5.1 棧、棧的實(shí)現(xiàn)以及Stack類(lèi) 5.1.1 棧的操作 5.1.2 Stack類(lèi)的實(shí)現(xiàn) 5.2 Stack類(lèi) 5.2.1 Stack構(gòu)造器方法 5.2.2 主要的棧操作 5.2.3 Peek方法 5.2.4 Clear方法 5.2.5 Contains方法 5.2.6 CopyTo方法和ToArray方法 5.2.7 Stack類(lèi)的實(shí)例:十進(jìn)制向多種進(jìn)制的轉(zhuǎn)換 5.3 隊(duì)列、Queue類(lèi)以及Queue類(lèi)的實(shí)現(xiàn) 5.3.1 隊(duì)列的操作 5.3.2 Queue的實(shí)現(xiàn) 5.3.3 Queue類(lèi):實(shí)例應(yīng)用 5.3.4 用隊(duì)列排序數(shù)據(jù) 5.3.5 源自Queue類(lèi)的優(yōu)先隊(duì)列 小結(jié) 練習(xí) 第6章 BitArray類(lèi) 6.1 激發(fā)的問(wèn)題 6.2 位和位操作 6.2.1 二進(jìn)制數(shù)制系統(tǒng) 6.2.2 處理二進(jìn)制數(shù):按位運(yùn)算符和移位運(yùn)算符 6.3 按位運(yùn)算符的應(yīng)用 6.4 整數(shù)轉(zhuǎn)換成二進(jìn)制形式的應(yīng)用程序 6.5 移位的示例應(yīng)用程序 6.6 BitArray類(lèi) 6.6.1 使用BitArray類(lèi) 6.6.2 更多BitArray類(lèi)的方法和屬性 6.7 用BitArray來(lái)編寫(xiě)埃拉托斯特尼篩法 6.8 BitArray與數(shù)組在埃拉托斯特尼篩法上的比較 小結(jié) 練習(xí) 第7章 字符串、String類(lèi)和StringBuilder類(lèi)第8章 模式匹配和文本處理第9章 構(gòu)建字典:DictionaryBase類(lèi)和SortedList類(lèi)第10章 散列和Hashtable類(lèi)第11章 鏈表 第12章 二叉樹(shù)和二叉查找樹(shù)第13章 集合 第14章 高級(jí)排序算法 第15章 用于查找的高級(jí)數(shù)據(jù)結(jié)構(gòu)和算法第16章 圖和圖的算法第17章 高級(jí)算法 參考文獻(xiàn) 索引
章節(jié)摘錄
插圖:第1章 Collections類(lèi)、泛型類(lèi)和Timing類(lèi)概述本書(shū)采用c#語(yǔ)言來(lái)討論數(shù)據(jù)結(jié)構(gòu)與算法的開(kāi)發(fā)和實(shí)現(xiàn)。書(shū)中用到的數(shù)據(jù)結(jié)構(gòu)都可以在.NET框架類(lèi)庫(kù)System.Collections中找到。本章會(huì)逐步展開(kāi)群集的概念,首先討論自身特有的collection類(lèi)的實(shí)現(xiàn)(采用數(shù)組作為我們實(shí)現(xiàn)的基礎(chǔ)),接著會(huì)介紹.NET框架中Collection類(lèi)的內(nèi)容。泛型是c#語(yǔ)言2.0版新增加的一個(gè)重要補(bǔ)充,它允許C#程序員可以獨(dú)立地或者在一個(gè)類(lèi)中編寫(xiě)函數(shù)的某一個(gè)版本,而且不需要為了不同的數(shù)據(jù)類(lèi)型而多次重載此函數(shù)。c#言2.0版還為幾種system.Collections數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)泛型提供了一個(gè)專(zhuān)門(mén)的庫(kù)System.Collections.Generic。本章將向讀者介紹泛型編程。本章最后會(huì)介紹一種用戶定制的類(lèi)——Timing類(lèi),后續(xù)的幾個(gè)章節(jié)將會(huì)用它來(lái)衡量數(shù)據(jù)結(jié)構(gòu)與/或算法的性能。這個(gè)類(lèi)將取代大O分析法,這不是因?yàn)榇驩分析法不重要,而是因?yàn)楸緯?shū)采取了一種更為實(shí)用的方法來(lái)分析數(shù)據(jù)結(jié)構(gòu)與算法。1.1 群集的定義群集(Collection)是一種結(jié)構(gòu)化的數(shù)據(jù)類(lèi)型,它存儲(chǔ)數(shù)據(jù)并且提供數(shù)據(jù)向/從群集中添加、刪除和更新操作,以及對(duì)群集的不同屬性值的設(shè)置與返回操作。群集分為線性群集和非線性群集。線性群集是一張?jiān)亓斜恚碇械脑仨槾蜗噙B。線性群集中的元素通常由位置來(lái)決定次序(例如,第一個(gè)元素、第二個(gè)元素、第三個(gè)元素,依此類(lèi)推)。在現(xiàn)實(shí)世界中,購(gòu)物清單就是很好的線性群集實(shí)例,而在計(jì)算機(jī)中(當(dāng)然這也是真實(shí)世界)則把數(shù)組設(shè)計(jì)成線性群集。
媒體關(guān)注與評(píng)論
“這是一本絕佳的介紹C#語(yǔ)言數(shù)據(jù)結(jié)構(gòu)的優(yōu)秀著作,對(duì)于數(shù)據(jù)結(jié)構(gòu)課程極具價(jià)值!” ——CHOICE雜志
編輯推薦
隨著.NET框架的廣泛應(yīng)用,C#已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一。但是,市面上尚無(wú)用C#語(yǔ)言講述數(shù)據(jù)結(jié)構(gòu)和算法的圖書(shū),廣大C#程序員不得不將自 己轉(zhuǎn)換C++或Java描述的數(shù)據(jù)結(jié)構(gòu),費(fèi)時(shí)費(fèi)力,而且容易出錯(cuò)?!稊?shù)據(jù)結(jié)構(gòu)與算法C#語(yǔ)言描述》填補(bǔ)了這一空白。而且更加難能可貴的是,作者基于自己多年的教學(xué)和實(shí)踐經(jīng)驗(yàn),從開(kāi)發(fā)實(shí)戰(zhàn)出發(fā),采用了一種與一般數(shù)據(jù)結(jié)構(gòu)圖書(shū)不同的講解方式:充分利 用.NET框架中現(xiàn)成的數(shù)據(jù)結(jié)構(gòu)類(lèi),先講述各種數(shù)據(jù)結(jié)構(gòu)怎么在開(kāi)發(fā)中選用,怎樣用來(lái)解決實(shí)際問(wèn)題,在有了感性認(rèn)識(shí)之后,再深入研究如何實(shí)現(xiàn);同時(shí),用更加 實(shí)用的時(shí)間測(cè)試方法代替常規(guī)的大O表示法來(lái)分析算法性能,避免了復(fù)雜的數(shù)學(xué)推導(dǎo)。書(shū)中除涵蓋了數(shù)組、廣義表、鏈表、散列表、樹(shù)、圖、排序、搜索等常規(guī)數(shù)據(jù) 結(jié)構(gòu)和算法外,還討論了概率和動(dòng)態(tài)規(guī)劃等方面的高級(jí)算法。中文版對(duì)原書(shū)的代碼進(jìn)行了全面的調(diào)試,改正了不少原版存在的問(wèn)題,保證了代碼的質(zhì)量和技術(shù)內(nèi)容的準(zhǔn)確性?!稊?shù)據(jù)結(jié)構(gòu)與算法C#語(yǔ)言描述》是C#程序員不可或缺的實(shí)用參考書(shū),也適合作為應(yīng)用型高校相關(guān)專(zhuān)業(yè).NET平臺(tái)開(kāi)發(fā)課程的教材。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu)與算法 PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版