數據結構簡明教程(C/C++版)

曹健、王晨、祝曉斌、譚勵、尹煥樸、王曉川

  • 出版商: 清華大學
  • 出版日期: 2026-07-01
  • 售價: $354
  • 語言: 簡體中文
  • ISBN: 7302719454
  • ISBN-13: 9787302719458
  • 相關分類: Algorithms-data-structures
  • 下單後立即進貨 (約4週~6週)

  • 數據結構簡明教程(C/C++版)-preview-1
  • 數據結構簡明教程(C/C++版)-preview-2
  • 數據結構簡明教程(C/C++版)-preview-3
  • 數據結構簡明教程(C/C++版)-preview-4
  • 數據結構簡明教程(C/C++版)-preview-5
  • 數據結構簡明教程(C/C++版)-preview-6
  • 數據結構簡明教程(C/C++版)-preview-7
數據結構簡明教程(C/C++版)-preview-1

商品描述

本書深入淺出地介紹了數據結構的基本內容(涵蓋線性結構、樹結構、圖結構)和常用的基礎算法(包括查找和內部排序)。在選材和編排上貼近當前普通高等院校數據結構課程的現狀和發展趨勢,符合數據結構本科教學大綱要求,突出了實用性和應用性。 書中通過詳細的圖解將抽象數據模型簡單通俗化,語言表述淺顯易懂,並結合有趣的例子和豐富的題目幫助讀者輕松入門;采用C 語言作為存儲結構和算法的基本描述語言,同時選用了一些C++對C 的非面向對象的增強功能(比如輸入輸出、動態存儲分配、參數的引用傳遞等)。使得代碼整體上簡明清晰,有利於初學者更多關註如何解決問題,而不拘泥於語法細節;針對普通高校教改後的課時安排和學生基礎進一步優化內容,對重點部分進行擴充,有助於考生復習備考使用。 本書可作為普通高等本科院校計算機專業、軟件工程專業和其他相關專業的“數據結構”、“算法與數據結構”等課程的教材以及研究生入學考試輔導書,也可供計算機軟件開發人員或編程愛好者參考和使用。

作者簡介

曹健(1982— ),男,博士,副教授,碩士生導師。2010年畢業於北京理工大學,就職於北京工商大學計算機與人工智能學院。主講算法與數據結構、信息安全、信息技術前沿等課程。發表學術論文60余篇,主持及參與國家級和省部級項目10余項。出版學術專著1部,教材3部,科普書1部。

目錄大綱

目錄

第1章緒論1

1.1數據結構1

1.1.1基本概念1

1.1.2三要素2

1.2算法分析5

1.2.1算法的定義5

1.2.2算法的評價標準6

1.2.3時間復雜度7

1.2.4空間復雜度9

1.3程序設計基礎10

1.3.1符號常量11

1.3.2數據類型12

1.3.3動態存儲分配15

思考與練習16第2章線性表17

2.1順序表17

2.1.1順序表的類型定義17

2.1.2順序表的基本操作18

2.2鏈表21

2.2.1單鏈表21

2.2.2雙向鏈表26

2.2.3循環鏈表28

2.3線性表的應用29

2.3.1擴容29

2.3.2查找30

2.3.3求並集32

思考與練習34第3章棧和隊列35

3.1棧35

3.1.1順序棧35

3.1.2鏈棧37

3.2隊列38

3.2.1循環隊列38

3.2.2鏈隊列42

3.3棧和隊列的應用42

3.3.1字符和數值的處理43

3.3.2遞歸的設計與實現47

思考與練習51第4章樹和二叉樹52

4.1樹52

4.1.1樹的基本術語53

4.1.2樹的存儲結構54

4.2二叉樹57

4.2.1二叉樹的性質57

4.2.2二叉樹的存儲結構60

4.2.3樹、森林與二叉樹的轉換61

4.3樹和二叉樹的操作63

4.3.1遍歷二叉樹63

4.3.2創建二叉樹66

4.3.3樹和森林的遍歷67

4.4樹和二叉樹的應用67

4.4.1從遍歷序列還原樹67

4.4.2二叉樹的復制與統計69

4.4.3哈夫曼樹70

思考與練習73第5章圖74

5.1圖的基本概念74

5.2圖的存儲結構78

5.2.1鄰接矩陣78

5.2.2鄰接表79

5.2.3鄰接多重表和十字鏈表81

5.3圖的遍歷82

5.3.1深度優先搜索83

5.3.2廣度優先搜索85

5.4圖的應用87

5.4.1最小生成樹87

5.4.2最短路徑90

5.4.3拓撲排序93

5.4.4關鍵路徑95

思考與練習98第6章查找100

6.1查找的基本概念100

6.2線性表的查找101

6.2.1順序查找101

6.2.2折半查找102

6.2.3分塊查找105

6.3二叉排序樹的查找106

6.3.1二叉排序樹的定義107

6.3.2二叉排序樹的插入109

6.3.3二叉排序樹的刪除111

6.4散列表的查找114

6.4.1散列函數的構造方法115

6.4.2處理沖突的方法117

6.4.3性能分析119

思考與練習120第7章排序122

7.1排序的基本概念122

7.2簡單的排序算法124

7.2.1冒泡排序126

7.2.2簡單選擇排序128

7.2.3直接插入排序130

7.3先進的排序算法135

7.3.1希爾排序135

7.3.2堆排序138

7.3.3歸並排序144

7.3.4快速排序147

7.4內部排序的性能比較152

思考與練習154附錄A課程內容與考核要求155附錄B抽象數據類型的定義164附錄C上機實驗的設計方法175附錄D練習題解答(示例)178參考文獻201