數據結構與算法:C#語言描述

數據結構與算法:C#語言描述

《數據結構與算法C#語言描述》是在.NET框架下用C#語言實現數據結構和算法的第一本全面的參考書。

基本介紹

  • 書名:數據結構與算法:C#語言描述
  • 作者:(美國)Michael McMillan
  • 譯者:呂秀鋒 崔睿
  • ISBN:9787115204271
  • 頁數:260頁
  • 出版社:人民郵電出版社
  • 出版時間:2009年5月1日
  • 裝幀:平裝
  • 開本:16
  • 正文語種:簡體中文
內容簡介,媒體評論,目錄,

內容簡介

《數據結構與算法C#語言描述》介紹的方法非常實用,採用了時間測試而非大O表示法來分析算法性能。內容涵蓋了數據結構和算法的基本原理,涉及數組、廣義表、鍊表、散列表、樹、圖、排序搜尋算法以及更多機率算法和動態規則等高級算法。此外,書中還提供了.NET框架類庫中的C#語言實現的數據結構和算法。
《數據結構與算法C#語言描述》適合作為C#數據結構課程的教材,同時也適合C#專業人士閱讀。

媒體評論

“這是一本絕佳的介紹C#語言數據結構的優秀著作,對於數據結構課程極具價值!”
——CHOICE雜誌

目錄

第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實現Collection類
1.3.2 定義Collection類
1.3.3 實現Collection類
1.4 泛型編程
1.5 時間測試
1.5.1 一個簡單化的時間測試
1.5.2 用於.NET環境的時間測試
1.5.3 TimingTest類
小結
練習
第2章 數組和ArrayList
2.1 數組基本概念
2.1.1 數組的聲明和初始化
2.1.2 數組元素的設定和存取訪問
2.1.3 檢索數組元數據的方法和屬性
2.1.4 多維數組
2.1.5 參數數組
2.1.6 鋸齒狀數組
2.2 ArrayList類
2.2.1 ArrayList類的成員
2.2.2 套用ArrayList類
小結
練習
第3章 基礎排序算法
3.1 排序算法
3.1.1 數組類測試環境
3.1.2 冒泡排序
3.1.3 檢驗排序過程
3.1.4 選擇排序
3.1.5 插入排序
3.2 基礎排序算法的時間比較
小結
練習
第4章 基礎查找算法
4.1 順序查找
4.1.1 查找最小值和最大值
4.1.2 自組織數據加快順序查找速度
4.2 二叉查找算法
4.3 遞歸二叉查找算法
小結
練習
第5章 棧和佇列
5.1 棧、棧的實現以及Stack類
5.1.1 棧的操作
5.1.2 Stack類的實現
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類的實現
5.3.1 佇列的操作
5.3.2 Queue的實現
5.3.3 Queue類:實例套用
5.3.4 用佇列排序數據
5.3.5 源自Queue類的優先佇列
小結
練習
第6章 BitArray類
6.1 激發的問題
6.2 位和位操作
6.2.1 二進制數制系統
6.2.2 處理二進制數:按位運算符和移位運算符
6.3 按位運算符的套用
6.4 整數轉換成二進制形式的應用程式
6.5 移位的示例應用程式
6.6 BitArray類
6.6.1 使用BitArray類
6.6.2 更多BitArray類的方法和屬性
6.7 用BitArray來編寫埃拉托斯特尼篩法
6.8 BitArray與數組在埃拉托斯特尼篩法上的比較
小結
練習
第7章 字元串、String類和StringBuioder類
7.1 String類的套用
7.1.1 創建String對象
7.1.2 常用的String類方法
7.1.3 Split方法和Join方法
7.1.4 比較字元串的方法
7.1.5 處理字元串的方法
7.2 StringBuilder類
7.2.1 構造StringBuilder對象
7.2.2 獲取並且設定關於sbingBuildcr對象的信息
7.2.3 修改StringBuilder對象
7.3 String類與StringBuilder的性能比較
小結
練習
第8章 模式匹配和文本處理
8.1 正則表達式概述
8.2 數量詞
8.3 使用字元類
8.4 用斷言修改正則表達式
8.5 使用分組構造
8.5.1 匿名組
8.5.2 命名組
8.5.3 零寬度正向預搜尋斷言和零寬度反向預搜尋斷言
8.6 CapturesCollection類
8.7 正則表達式的選項
小結
練習
第9章 構建字典:DictionaryBase類和SortedList類
9.1 DictionaryBase類
9.1.1 DictionaryBase類的基礎方法和屬性
9.1.2 其他的DictionaryBase方法
9.2 泛型KeyValuePair類
9.3 Sorted[Jst類.。
小結
練習
第10章 散列和Hashtaboe類
10.1 散列概述
10.2 選擇散列函式
10.3 查找散列表中數據
10.4 解決衝突.
10.4.1 桶式散列法
10.4.2 開放定址法
10.4.3 雙重散列法
10.5 Hashtable類
10.5.1 實例化Hashtable對象並且給其添加數據
10.5.2 從散列表中分別檢索鍵和數值
10.5.3 檢索基於鍵的數值
10.5.4 Hashtable類的實用方法
]0.6 Hashtable的套用:計算機術語表
小結
練習
第11章 鍊表
11.1 數組存在的問題
11.2 鍊表的定義
11.3 面向對象鍊表的設計
11.3.1 Node類
11.3.2 LinkedList類
11.4 鍊表設計的改進方案
11.4.1 雙向鍊表
11.4.2 循環鍊表
11.5 使用Iteratot.類
11.5.1 新的LinkedList類
11.5.2 實例化Iterator類
11.6 泛型工,inked L,ist類和泛型Node類
小結
練習
第12章 二叉樹和二叉查找樹
12.1 樹的定義
12.2 二叉樹
12.2.1 構造二叉查找樹
12.2.2 遍歷二叉查找樹
12.2.3 在二叉查找樹申查找節點和最大/最小值
12.2.4 從二叉查找樹申移除葉子節點
12.2.5 刪除帶有一個子節點的節點
12.2.6 刪除帶有兩個子節點的節點
小結
練習
第13章 集合
13.1 集合的基礎定義、操作及屬性
13.1.1 集合的定義
13.1.2 集合的操作
13.1.3 集合的屬性
13.2 第一個用散列表的Set類的實現
13.2.1 類數據成員和構造器方法
13.2.2 Add方法
13.2.3 Remove方法和Size方法
13.2.4 Union方法
13.2.5 Intersection方法
13.2.6 Subset方法
13.2.7 Difference方法
13.2.8 測試CSet實現的程式
13.3 CSet類的BitArray實現
13.3.1 使用BitArray實現的概述
13.3.2 BitArray集合的實現
小結
練習
第14章 高級排序算法
14.1 希爾排序算法
14.2 歸併排序算法
14.3 堆排序算法
14.4 快速排序算法
14.4.1 快速排序算法的描述
14.4.2 快速排序算法的代碼
14.4.3 快速排序算法的改進
小結
練習
第15章 用於查找的高級數據結構和算法
15.1 AVL樹
15.1.1 AVL樹的基本原理
15.1.2 AVL樹的實現
15.2 紅黑樹
15.2.1 紅黑樹規則
15.2.2 紅黑樹的插入
15.2.3 紅黑樹實現代碼
15.3 跳躍表
15.3.1 跳躍表的基本原理
15.3.2 跳躍表的實現
小結
練習
第16章 圖和圖的算法
16.1 圖的定義
16.2 由圖模擬真實世界系統
16.3 圖類
16.3.1 頂點的表示
16.3.2 邊的表示
16.3.3 圖的構造
16.3.4 圖的第一個套用:拓撲排序
16.3.5 拓撲排序算法
16.3.6 拓撲排序算法的實現
16.4 圖的搜尋
16.4.1 深度優先搜尋
16.4.2 廣度優先搜尋
16.5 最小生成樹
16.6 查找最短路徑
16.6.1 加權圖
16.6.2 確定最短路徑的Dikstra算法
16.6.3 Dikstra算法的代碼
小結
練習
第17章 高級算法
17.1 動態規劃
17.1.1 動態規劃實例:計算斐波納契數列
17.1.2 尋找最長公共子串
17.1.3 背包問題
17.2 貪心算法
17.2.1 貪心算法實例:找零錢問題
17.2.2 採用哈夫曼編碼的數據壓縮
17.2.3 用貪心算法解決背包問題
小結
練習
參考文獻
索引

相關詞條

熱門詞條

聯絡我們