出版時間: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
無
評論、評分、閱讀與下載