數據結構教程(C#語言描述)

數據結構教程(C#語言描述)

《數據結構教程(C#語言描述)》是由李春葆主編,2013年清華大學出版社出版的高等學校數據結構課程系列教材。該教材可作為高等院校計算機相關專業本科生、專科生的教材,也可供從事計算機套用的科技人員參考。

該教材介紹了常用的數據結構以及排序、查找的各種算法,闡述了各種數據結構的邏輯關係、存儲表示及運算操作,並採用C#語言描述數據組織和算法實現。

基本介紹

  • 書名:數據結構教程(C#語言描述)
  • 作者:李春葆
  • 類別:高等學校數據結構課程系列教材
  • 出版社:清華大學出版社
  • 出版時間:2013年2月1日
  • 頁數:367 頁
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787302305170
  • 字數:596千字
  • CIP核字號:2012257453
成書過程,修訂情況,出版工作,內容簡介,教材目錄,教學資源,教材特色,作者簡介,

成書過程

修訂情況

該教材是作者根據教學經驗,參考中國國內外出版的多種數據結構以及C#面向對象程式設計教材,考慮教與學的特點,進行內容的取捨,組織編寫而成的。
該教材的編寫工作得到湖北省教育廳和武漢大學教學研究項目《計算機科學與技術專業課程體系改革》的支持,特別是國家級名師何炎祥教授和主管教學工作的王麗娜副院長對該教材的編寫給予了指導意見,國家珠峰計畫——武漢大學計算機弘毅班的兩屆學生和眾多編者授課的本科生提出了建議,清華大學出版社魏江江主任支持該教材的編寫工作。

出版工作

2013年2月1日,該教材由清華大學出版社出版。
出版社工作人員
責任編輯
封面設計
責任校對
責任印製
魏江江、王冰飛
楊兮
梁毅
王靜怡

內容簡介

全書由10章構成,各章內容如下:
第1章緒論,介紹數據結構的基本概念、採用C#語言描述算法的特點、算法分析方法和如何設計好算法等。
第2章線性表,介紹線性表的定義、線性表的兩種主要的存儲結構和各種基本運算算法設計,最後通過示例討論線性表的套用。
第3章棧和佇列,介紹棧的定義、棧的存儲結構、棧的各種基本運算算法設計和棧的套用;佇列的定義、佇列的存儲結構和佇列的各種基本運算算法設計和佇列的套用。
第4章串,介紹串的定義、串的存儲結構、串的各種基本運算算法設計和串的模式匹配算法。
第5章數組和廣義表,介紹數組的定義、幾種特殊矩陣的壓縮存儲方式、稀疏矩陣的壓縮存儲及相關算法設計;遞歸的定義和遞歸算法設計方法;廣義表的定義、廣義表的存儲結構及相關算法設計方法。
第6章樹和二叉樹,介紹樹的定義、樹的邏輯表示方法、樹的性質、樹的遍歷和樹的存儲結構二叉樹;介紹二叉樹的定義、二叉樹的性質、樹/森林和二叉樹的轉換與還原、二叉樹存儲結構、二叉樹基本運算算法設計、二叉樹的遞歸和非遞歸遍歷算法、二叉樹的構造、線索二叉樹和哈夫曼樹等。
第7章圖,介紹圖的定義、圖的存儲結構、圖的基本運算算法設計、圖的兩種遍歷算法以及圖的套用(包括圖的最小生成樹、最短路徑、拓撲排序和關鍵路徑等)。
第8章查找,介紹查找的定義、線性表上的各種查找方法、樹表上的各種查找方法以及哈希表查找方法等。
第9章內排序,介紹排序的定義、插入排序方法、交換排序方法、選擇排序方法、歸併排序方法和基數排序方法,並對各種排序方法進行了比較。
第10章外排序,介紹外排序的定義、外排序的基本步驟,重點討論了磁碟排序中的各種算法。
另外,附錄A中給出各章練習題單項選擇題部分的答案。

教材目錄

第1章緒論
1.1什麼是數據結構
1.1.1數據結構的定義
1.1.2數據的邏輯結構
1.1.3數據的存儲結構
1.1.4數據的運算
1.1.5數據結構和數據類型
1.2算法及其描述
1.2.1什麼是算法
1.2.2算法描述
1.3算法分析
1.3.1算法的特性和算法設計的目標
1.3.2算法時間效率分析
1.3.3算法存儲空間分析
1.4數據結構的目標
本章小結
練習題1
第2章線性表
2.1線性表的定義
2.1.1什麼是線性表
2.1.2線性表的抽象數據類型描述
2.2線性表的順序存儲結構
2.2.1線性表的順序存儲結構——順序表
2.2.2順序表基本運算的實現
2.3線性表的鏈式存儲結構
2.3.1線性表的鏈式存儲結構——鍊表
2.3.2單鍊表
2.3.3雙鍊表
2.3.4循環鍊表
2.4線性表的套用
本章小結
練習題2
第3章棧和佇列
3.1棧
3.1.1棧的定義
3.1.2棧的順序存儲結構及其基本運算的實現
3.1.3棧的鏈式存儲結構及其基本運算的實現
3.1.4棧的套用
3.2佇列
3.2.1佇列的定義
3.2.2佇列的順序存儲結構及其基本運算的實現
3.2.3佇列的鏈式存儲結構及其基本運算的實現
3.2.4佇列的套用
本章小結
練習題3
第4章串
4.1串的基本概念
4.1.1什麼是串
4.1.2串的抽象數據類型
4.2串的存儲結構
4.2.1串的順序存儲結構——順序串
4.2.2串的鏈式存儲結構——鏈串
4.3串的模式匹配
4.3.1BruteForce算法
4.3.2KMP算法
本章小結
練習題4
第5章數組和廣義表
5.1數組
5.1.1數組的定義
5.1.2數組的存儲結構
5.1.3特殊矩陣的壓縮存儲
5.2稀疏矩陣
5.2.1稀疏矩陣的三元組表示
5.2.2稀疏矩陣的十字鍊表表示
5.3遞歸
5.3.1遞歸的定義
5.3.2何時使用遞歸
5.3.3遞歸模型
5.3.4遞歸算法設計的步驟
5.3.5遞歸算法轉換為非遞歸算法
5.4廣義表
5.4.1廣義表的定義
5.4.2廣義表的存儲結構
5.4.3廣義表的運算
本章小結
練習題5
第6章樹和二叉樹
6.1樹
6.1.1樹的定義
6.1.2樹的邏輯結構表示方法
6.1.3樹的基本術語
6.1.4樹的性質
6.1.5樹的基本運算
6.1.6樹的存儲結構
6.2二叉樹
6.2.1二叉樹的定義
6.2.2二叉樹的性質
6.2.3二叉樹與樹、森林之間的轉換
6.2.4二叉樹的存儲結構
6.2.5二叉樹的基本運算及其實現
6.2.6二叉樹的遍歷
6.2.7二叉樹的構造
6.2.8線索二叉樹
6.3哈夫曼樹
6.3.1哈夫曼樹的定義
6.3.2哈夫曼樹的構造算法
6.3.3哈夫曼編碼
本章小結
練習題6
第7章圖
7.1圖的基本概念
7.1.1圖的定義
7.1.2圖的基本術語
7.2圖的存儲結構和基本運算的實現
7.2.1鄰接矩陣存儲方法
7.2.2鄰接表存儲方法
7.3圖的遍歷
7.3.1圖的遍歷的概念
7.3.2深度優先遍歷
7.3.3廣度優先遍歷
7.3.4非連通圖的遍歷
7.3.5圖遍歷算法的套用
7.4圖的套用
7.4.1生成樹和最小生成樹
7.4.2最短路徑
7.4.3拓撲排序
7.4.4AOE網與關鍵路徑
本章小結
練習題7
第8章查找
8.1查找的基本概念
8.2線性表的查找
8.2.1順序查找
8.2.2折半查找
8.2.3索引存儲結構和分塊查找
8.3樹表的查找
8.3.1二叉排序樹
8.3.2平衡二叉樹
8.3.3B-樹
8.3.4B+樹
8.4哈希表查找
8.4.1哈希表的基本概念
8.4.2哈希函式構造方法
8.4.3哈希衝突的解決方法
8.4.4哈希表查找及性能分析
本章小結
練習題8
第9章內排序
9.1排序的基本概念
9.2插入排序
9.2.1直接插入排序
9.2.2折半插入排序
9.2.3希爾排序
9.3交換排序
9.3.1冒泡排序
9.3.2快速排序
9.4選擇排序
9.4.1簡單選擇排序
9.4.2堆排序
9.5歸併排序
9.6基數排序
9.7各種內排序方法的比較和選擇
本章小結
練習題9
第10章外排序
10.1外排序概述
10.2磁碟排序
10.2.1磁碟排序過程
10.2.2生成初始歸併段
10.2.3多路平衡歸併
10.2.4最佳歸併樹
本章小結
練習題10
附錄A部分練習題參考答案
參考文獻
(註:目錄排版順序為從左列至右列

教學資源

  • 配套教材
該教材配有配套教材——《數據結構實踐教程(C#語言描述)》。
書名
書號
出版社
作者
《數據結構實踐教程(C#語言描述)》
9787302301721
清華大學出版社
李春葆
  • 課程資源
該教材還提供PPT課件和源程式、習題和答案等教學資源。

教材特色

該教材採用C#語言面向對象方法描述算法和實驗程式設計。
該教材主要特點如下:
  1. 全書用300多幅圖來表述和講解數據的組織結構和算法設計思想;
  2. 該教材歸納各類算法設計的規律,如單鍊表算法中很多是基於建表算法的,二叉樹算法中很多是基於遍歷算法的,圖算法中很多是基於深度優先遍歷的;
  3. 該教材討論遞歸算法設計的方法,遞歸算法設計是數據結構課程中的難點之一,作者從遞歸模型入手,介紹了從求解問題中提取遞歸模型的通用方法,講解了從遞歸模型到遞歸算法設計的基本規律;
  4. 書中含有實踐項目,全面覆蓋並超越了教育部制定的《高等學校計算機科學與技術專業實踐教學體系與規範》中數據結構課程的實踐教學要求;作者已在VisualStudio.NET2005/2008開發環境中全部調試並通過這些實踐項目。

作者簡介

李春葆,男,博士,武漢大學計算機學院計算機科學系教授、碩士生導師。研究領域為數據倉庫和數據挖掘。講授本科生《數據結構》和《軟體工程》課程,碩士研究生《軟體開發新技術》和《空間資料庫》等課程。

相關詞條

熱門詞條

聯絡我們