深入淺出數據結構與算法(微課視頻版)

陳銳、張亞洲、崔建濤、李璞

  • 出版商: 清華大學
  • 出版日期: 2023-04-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • ISBN: 7302627738
  • ISBN-13: 9787302627739
  • 立即出貨 (庫存=1)

  • 深入淺出數據結構與算法(微課視頻版)-preview-1
  • 深入淺出數據結構與算法(微課視頻版)-preview-2
  • 深入淺出數據結構與算法(微課視頻版)-preview-3
深入淺出數據結構與算法(微課視頻版)-preview-1

買這商品的人也買了...

商品描述

數據結構與算法是電腦、軟件工程等相關專業一門非常重要的專業基礎和核心課程。《深入淺出數據結構與算法:微課視頻版》內容全面,語言通俗易懂,所選案例典型、豐富,結構清晰,重難點突出,所有算法均已實現,可直接運行。《深入淺出數據結構與算法:微課視頻版》共分為四篇,內容包括數據結構概述,數據結構與算法基礎,線性表,棧和隊列,串、數組與廣義表,樹,圖,查找,排序,回溯算法,貪心算法,分治算法,實用算法等。另外,《深入淺出數據結構與算法:微課視頻版》贈送同步微視頻、教學大綱、案例源代碼和PPT課件,方便讀者學習和使用。 《深入淺出數據結構與算法:微課視頻版》可作為電腦軟件開發、準備考取電腦專業研究生和參加軟考人員學習數據結構與算法的參考書,也可作為電腦、軟件工程及相關專業的教材。

目錄大綱

目錄

第1章  數據結構概述

1.1  為什麽要學習數據結構

1.2  基本概念和術語

1.3  數據的邏輯結構與存儲結構

1.3.1  邏輯結構

1.3.2  存儲結構

1.4  抽象數據類型及其描述

1.4.1  什麽是抽象數據類型

1.4.2  抽象數據類型的描述

1.5  算法

1.5.1  數據結構與算法的關系

1.5.2  什麽是算法

1.5.3  算法的五大特性

1.5.4  算法的描述方式

1.6  算法分析

1.6.1  算法設計的4個目標

1.6.2  算法效率評價

1.6.3  算法時間復雜度

1.6.4  算法空間復雜度

1.7  學好數據結構的秘訣

第2章  數據結構與算法基礎

2.1  遞歸與非遞歸

2.1.1  函數的遞歸調用

2.1.2  遞歸應用舉例

2.1.3  迭代與遞歸

2.2  指針

2.2.1  什麽是指針

2.2.2  指針變量的間接引用

2.2.3  指針與數組

2.2.4  指針函數與函數指針

2.3  參數傳遞

2.3.1  傳值調用

2.3.2  傳地址調用

2.4  結構體

2.4.1  結構體的定義

2.4.2  指向結構體的指針

2.4.3  用typedef定義數據類型

2.5  小結

第二篇  線性數據結構

第3章  線性表

3.1  線性表的定義及抽象數據類型

3.1.1  線性表的邏輯結構

3.1.2  線性表的抽象數據類型

3.2  線性表的順序表示與實現

3.2.1  線性表的順序存儲結構

3.2.2  順序表的基本運算

3.2.3  順序表的實現算法分析

3.2.4  順序表的優缺點

3.2.5  順序表應用舉例

3.3  線性表的鏈式表示與實現

3.3.1  單鏈表的存儲結構

3.3.2  單鏈表上的基本運算

3.3.3  單鏈表存儲結構與順序存儲結構的優缺點

3.3.4  單鏈表應用舉例

3.4  循環單鏈表

3.5  雙向鏈表

3.5.1  雙向鏈表的存儲結構

3.5.2  雙向鏈表的插入和刪除操作

3.5.3  雙向鏈表應用舉例

3.6  綜合案例:一元多項式的表示與相加

3.6.1  一元多項式的表示

3.6.2  一元多項式相加

3.7  小結

第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  鏈棧的基本運算

4.4  棧與遞歸

4.4.1  遞歸

4.4.2  消除遞歸

4.5  隊列的定義與抽象數據類型

4.5.1  什麽是隊列

4.5.2  隊列的抽象數據類型

4.6  隊列的順序存儲及實現

4.6.1  順序循環隊列──順序隊列的表示

4.6.2  順序循環隊列的基本運算

4.7  隊列的鏈式存儲及實現

4.7.1  鏈式隊列的表示

4.7.2  鏈式隊列的基本運算

4.8  雙端隊列

4.8.1  什麽是雙端隊列

4.8.2  雙端隊列的應用

4.9  棧與隊列的典型應用

4.9.1  求算術表達式的值

4.9.2  舞伴配對

4.10  小結

第5章  串、數組與廣義表

5.1  串的定義及抽象數據類型

5.1.1  什麽是串

5.1.2  串的抽象數據類型

5.2  串的存儲表示與實現

5.2.1  串的順序存儲結構及基本運算

5.2.2  串的鏈式存儲結構

5.2.3  順序串應用舉例

5.3  串的模式匹配

5.3.1  樸素模式匹配算法——Brute-Force

5.3.2  KMP算法

5.3.3  模式匹配應用舉例

5.4  數組的定義及抽象數據類型

5.4.1  重新認識數組

5.4.2  數組的抽象數據類型

5.4.3  數組的順序存儲結構

5.5  特殊矩陣的壓縮存儲

5.5.1  對稱矩陣的壓縮存儲

5.5.2  三角矩陣的壓縮存儲

5.5.3  對角矩陣的壓縮存儲

5.6  稀疏矩陣的壓縮存儲

5.6.1  什麽是稀疏矩陣

5.6.2  稀疏矩陣抽象數據類型

5.6.3  稀疏矩陣的三元組表示

5.6.4  稀疏矩陣的三元組實現

5.6.5  稀疏矩陣應用舉例──三元組表示的稀疏矩陣相加

5.7  廣義表

5.7.1  什麽是廣義表

5.7.2  廣義表的抽象數據類型

5.7.3  廣義表的頭尾鏈表存儲結構

5.7.4  廣義表的擴展線性鏈表存儲結構

5.8  小結

第三篇  非線性數據結構

第6章  樹

6.1  樹的相關概念及抽象數據類型

6.1.1  什麽是樹

6.1.2  樹的相關概念

6.1.3  樹的邏輯表示

6.1.4  樹的存儲結構

6.2  二叉樹的相關概念及抽象數據類型

6.2.1  什麽是二叉樹

6.2.2  二叉樹的性質

6.2.3  二叉樹的抽象數據類型

6.2.4  二叉樹的存儲表示與實現

6.3  遍歷二叉樹

6.3.1  什麽是遍歷二叉樹

6.3.2  二叉樹的先序遍歷

6.3.3  二叉樹的中序遍歷

6.3.4  二叉樹的後序遍歷

6.4  遍歷二叉樹的應用

6.4.1  按層次輸出二叉樹

6.4.2  二叉樹的計數

6.4.3  求葉子結點的最大最小枝長

6.4.4  判斷兩棵二叉樹是否相似

6.4.5  交換二叉樹的左右子樹

6.4.6  求根結點到r結點之間的路徑

6.5  線索二叉樹

6.5.1  什麽是線索化二叉樹

6.5.2  線索二叉樹

6.5.3  遍歷線索二叉樹

6.6  樹、森林與二叉樹

6.6.1  樹轉換為二叉樹

6.6.2  森林轉換為二叉樹

6.6.3  二叉樹轉換為樹和森林

6.6.4  樹和森林的遍歷

6.6.5  樹與二叉樹應用舉例

6.7  綜合案例:哈夫曼樹

6.7.1  什麽是哈夫曼樹

6.7.2  哈夫曼編碼

6.7.3  哈夫曼編碼算法的實現

6.8  小結

第7章  圖

7.1  圖的定義與相關概念

7.1.1  什麽是圖

7.1.2  圖的相關概念

7.1.3  圖的抽象數據類型

7.2  圖的存儲結構

7.2.1  鄰接矩陣(數組表示法)

7.2.2  鄰接表

7.2.3  十字鏈表

7.2.4  鄰接多重鏈表

7.3  圖的遍歷

7.3.1  圖的深度優先搜索

7.3.2  圖的廣度優先搜索

7.4  圖的連通性問題

7.4.1  無向圖的連通分量與最小生成樹

7.4.2  最小生成樹

7.5  有向無環圖

7.5.1  AOV網與拓撲排序

7.5.2  AOE網與關鍵路徑

7.6  最短路徑

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

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

7.6.3  最短路徑應用舉例

7.7  圖的應用舉例

7.8  小結

第四篇  常用算法

第8章  查找

8.1  基本概念

8.2  靜態查找

8.2.1  順序表的查找

8.2.2  有序順序表的查找

8.2.3  索引順序表的查找

8.3  動態查找

8.3.1  二叉排序樹

8.3.2  平衡二叉樹

8.4  B-樹與B+樹

8.4.1  B-樹

8.4.2  B+樹

8.5  哈希表

8.5.1  什麽是哈希表

8.5.2  哈希函數的構造方法

8.5.3  處理沖突的方法

8.5.4  哈希表應用舉例

8.6  小結

第9章  排序

9.1  基本概念

9.2  插入排序

9.2.1  直接插入排序

9.2.2  折半插入排序

9.2.3  希爾排序

9.2.4  插入排序應用舉例

9.3  交換排序

9.3.1  冒泡排序

9.3.2  快速排序

9.3.3  交換排序應用舉例

9.4  選擇排序

9.4.1  簡單選擇排序

9.4.2  堆排序

9.4.3  選擇排序應用舉例

9.5  歸並排序

9.6  基數排序

9.6.1  基數排序算法

9.6.2  基數排序應用舉例

9.7  小結

第10章  回溯算法

10.1  和式分解

10.2  填字游戲

10.3  裝載問題

10.4  迷宮問題

第11章  貪心算法

11.1  找零錢問題

11.2  哈夫曼編碼

11.3  加油站問題

第12章  分治算法

12.1  最大子序列和問題

12.2  求x的n次冪

12.3  眾數問題

12.4  求n個數中的最大者和最小者

12.5  整數劃分問題

12.6  大整數乘法

第13章  實用算法

13.1  大小寫金額轉換

13.2  將15位身份證號轉換為18位

13.3  微信搶紅包問題

13.4  一元多項式的乘法

13.5  大整數乘法

參考文獻