數據結構(C語言版)(第4版)

唐國民,王國鈞 主編;李樹東,邵斌 副主編

  • 出版商: 清華大學
  • 出版日期: 2024-07-01
  • 定價: $299
  • 售價: 8.5$254
  • 語言: 簡體中文
  • ISBN: 7302663467
  • ISBN-13: 9787302663461
  • 相關分類: C 程式語言
  • 下單後立即進貨 (約4週~6週)

  • 數據結構(C語言版)(第4版)-preview-1
  • 數據結構(C語言版)(第4版)-preview-2
  • 數據結構(C語言版)(第4版)-preview-3
數據結構(C語言版)(第4版)-preview-1

相關主題

商品描述

"本書系統介紹各種常用的數據結構及它們的存儲表示,討論了基於這些數據結構的基本操作和實際的執行算法,並闡述了各種常用數據結構內涵的邏輯關系。全書共分為9章。第1章為概論,引入數據結構與算法的一些基本概念,是全書的綜述; 第2~7章分別介紹線性表、棧、隊列、串、多維數組、廣義表、樹、二叉樹和圖等基本的數據結構; 第8章和第9章分別介紹查找和排序,它們都是數據處理時廣泛使用的技術。書中既體現了抽象數據類型的觀點,又對每個算法的具體實現給出了完整的C語言源代碼描述。 本書的特色是深入淺出,既註重理論又重視實踐,使用算法設計實例的教學方式來組織內容,重點明確、結構合理。全書配有大量的例題和詳盡的註釋,各章都有小結和不同類型的習題。書中自始至終使用C語言來描述算法和數據結構,全部程序都調試通過。 本書可作為高等學校電腦及相關專業的教材,也可供從事電腦應用的科技人員參考。 "

目錄大綱

 

目錄

 

 

第1章概論

 

1.1什麽是數據結構

 

1.1.1數據和數據元素

 

1.1.2數據類型與數據對象

 

1.1.3數據結構

 

1.2為什麽要學習數據結構

 

1.2.1學習數據結構的重要性

 

1.2.2數據結構的應用舉例

 

1.3算法和算法分析

 

1.3.1算法的概念

 

1.3.2算法的描述和設計

 

1.3.3算法分析

 

本章小結

 

習題1

 

第2章線性表

 

2.1線性表的基本概念

 

2.1.1線性表的定義

 

2.1.2線性表的基本操作

 

2.2線性表的順序存儲

 

2.2.1順序表

 

2.2.2順序表的基本操作

 

2.2.3一個完整的例子(1)

 

2.3線性表的鏈式存儲

 

2.3.1單鏈表的基本概念

 

2.3.2單鏈表的基本操作

 

2.3.3一個完整的例子(2)

 

2.3.4循環鏈表

 

2.3.5雙向鏈表

 

2.3.6雙向循環鏈表

 

2.3.7靜態鏈表

 

2.4線性表順序存儲與鏈式存儲的比較

 

2.5線性表的應用

 

2.5.1約瑟夫問題

 

2.5.2多項式加法

 

2.5.3電文加密

 

本章小結

 

習題2

 

第3章棧和隊列

 

3.1棧

 

3.1.1棧的定義與基本操作

 

3.1.2順序棧的存儲結構和操作的實現

 

3.1.3鏈棧的存儲結構和操作的實現

 

3.2棧的應用

 

3.2.1數制轉換

 

3.2.2括號匹配問題

 

3.2.3子程序的調用

 

3.2.4利用一個順序棧逆置一個帶頭結點的單鏈表

 

3.3隊列

 

3.3.1隊列的定義與基本操作

 

3.3.2鏈隊列的存儲結構和操作的實現

 

3.3.3順序隊列的存儲結構和操作的實現

 

3.4隊列的應用

 

3.4.1打印楊輝三角形

 

3.4.2迷宮問題: 尋找一條從迷宮入口到出口的最短路徑

 

3.5遞歸

 

3.5.1遞歸的定義與實現

 

3.5.2遞歸消除

 

本章小結

 

習題3

 

第4章串

 

4.1串的定義和基本操作

 

4.1.1串的定義

 

4.1.2串的基本操作

 

4.2串的表示和實現

 

4.2.1串的定長順序存儲

 

4.2.2串的堆存儲結構

 

4.2.3串的塊鏈存儲結構

 

4.3串的模式匹配算法

 

4.3.1基本的模式匹配算法

 

4.3.2模式匹配的改進算法——KMP算法

 

本章小結

 

習題4

 

第5章多維數組和廣義表

 

5.1多維數組

 

5.1.1多維數組的定義

 

5.1.2數組的存儲結構

 

5.2矩陣的壓縮存儲

 

5.2.1特殊矩陣

 

5.2.2稀疏矩陣

 

5.3廣義表

 

本章小結

 

習題5

 

第6章樹和二叉樹

 

6.1樹的概念與基本操作

 

6.1.1樹的定義

 

6.1.2樹的一些基本概念

 

6.1.3樹的基本操作

 

6.2二叉樹

 

6.2.1二叉樹的定義和基本操作

 

6.2.2二叉樹的性質

 

6.2.3二叉樹的存儲結構

 

6.3二叉樹的遍歷與線索化

 

6.3.1二叉樹的遍歷

 

6.3.2線索二叉樹

 

6.3.3基於遍歷的應用與線索二叉樹的應用

 

6.4樹和森林

 

6.4.1樹的存儲結構

 

6.4.2樹、森林和二叉樹之間的轉換

 

6.4.3樹和森林的遍歷

 

6.5哈夫曼樹及其應用

 

6.5.1與哈夫曼樹相關的基本概念

 

6.5.2哈夫曼樹的應用

 

6.5.3哈夫曼編碼算法的實現

 

*6.6樹的計數

 

本章小結

 

習題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.4生成樹與最小生成樹

 

7.4.1生成樹的概念

 

7.4.2構造最小生成樹的普里姆算法

 

7.4.3構造最小生成樹的克魯斯卡爾算法

 

7.5最短路徑

 

7.5.1從某個源點到其餘各頂點的最短路徑

 

7.5.2每一對頂點之間的最短路徑

 

7.6拓撲排序

 

7.7關鍵路徑

 

本章小結

 

習題7

 

第8章查找

 

8.1查找的基本概念

 

8.2線性表的查找

 

8.2.1順序查找

 

8.2.2二分查找

 

8.2.3分塊查找

 

8.3樹表的查找

 

8.3.1二叉排序樹

 

*8.3.2B-樹

 

*8.3.3B-樹上的基本運算

 

8.4散列表的查找

 

8.4.1散列表的概念

 

8.4.2散列函數的構造方法

 

8.4.3處理沖突的方法

 

8.4.4散列表上的運算

 

本章小結

 

習題8

 

第9章排序

 

9.1排序的基本概念

 

9.1.1關鍵字與排序

 

9.1.2排序的穩定性

 

9.1.3排序方法的分類

 

9.1.4排序算法性能評價

 

9.1.5不同存儲方式的排序過程

 

9.2插入排序

 

9.2.1直接插入排序

 

9.2.2希爾排序

 

9.3交換排序

 

9.3.1冒泡排序

 

9.3.2快速排序

 

9.4選擇排序

 

9.4.1直接選擇排序

 

9.4.2堆排序

 

9.5歸並排序

 

9.6基數排序

 

9.6.1多關鍵字的排序

 

9.6.2鏈式基數排序

 

9.7內部排序算法比較

 

9.8外部排序簡介

 

本章小結

 

習題9

 

參考文獻