數據結構與演算法設計 高等学校计算机类 十二五 规划教材:数据结构与算法设计

編者:張小艷//李占利

下單後立即進貨 (約4週~6週)

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

相關主題

商品描述

 

<內容簡介>

張小艷、李占利主編的《數據結構與演算法設計》重點介紹了電腦學科中常用的數據結構(包括線性表、棧、隊列、串、數組、樹、圖)的基本概念、邏輯結構、存儲結構和在不同存儲結構上操作的實現,還介紹了許多經典的查找與排序演算法的各種實現過程,並進行了綜合分析比較。本書採用C語言描述演算法。
本書是在作者多年講授數據結構課程的實踐基礎上編寫完成的。概念敘述簡潔,語言精練,深入淺出,實用性強,同時盡量避免抽象理論的闡述,通過實例分析使讀者理解抽象概念。
與本書配套出版的《(數據結構與演算法設計)實踐與題解》,既便於教師教學,也便於學生自學。
本書是省級精品課程配套教材,可作為電腦類專業及信息類相關專業的教材,也可供電腦工程與應用領域技術人員參考。
本書配套課件獲教育部多媒體課件比賽三等獎。

<章節目錄>

第一章  緒論
  1.1  數據結構的起源
  1.2  什麼是數據結構
  1.3  邏輯結構與物理結構
    1.3.1  邏輯結構
    1.3.2  物理結構
  1.4  抽象數據類型
    1.4.1  數據類型
    1.4.2  抽象數據類型
    1.4.3  抽象數據類型的實現方法
  1.5  演算法
    1.5.1  演算法的基本概念
    1.5.2  演算法的性能評價
    1.5.3  演算法描述
  1.6  數據結構與演算法設計課程的地位及
    主要內容
  習題與訓練
第二章  線性表
  2.1  線性表的定義及邏輯結構
    2.1.1  線性表的定義
    2.1.2  線性表的基本操作
  2.2  線性表的順序存儲結構
    2.2.1  順序表
    2.2.2  順序表上插入與刪除操作的實現
    2.2.3  順序表應用舉例
  2.3  線性表的鏈式存儲結構
    2.3.1  單鏈表
    2.3.2  單鏈表上基本運算的實現
    2.3.3  循環單鏈表
    2.3.4  靜態鏈表
    2.3.5  雙向鏈表
    2.3.6  鏈表應用舉例
  2.4  順序表和鏈表的比較
  習題與訓練
第三章  棧和隊列
  3.1  棧的定義及其邏輯結構
    3.1.1  棧的定義
    3.1.2  基本操作
  3.2  棧的存儲結構
    3.2.1  棧的順序存儲結構
    3.2.2  兩個棧的共享空間
    3.2.3  棧的鏈式存儲結構
  3.3  棧的應用舉例
  3.4  棧與遞歸
    3.4.1  棧與遞歸的實現過程
    3.4.2  漢諾塔
  3.5  隊列的定義及基本運算
    3.5.1  隊列的定義
    3.5.2  基本運算
  3.6  隊列的存儲結構及操作實現

    3.6.1  順序隊列
    3.6.2  循環隊列
    3.6.3  鏈隊列
  習題與訓練
第四章  串
  4.1  串的定義及其基本運算
    4.1.1  串的基本概念
    4.1.2  串的基本運算
  4.2  串的順序存儲及基本運算
    4.2.1  串的順序存儲
    4.2.2  基本運算的實現
  4.3  串的堆存儲結構
    4.3.1  堆存儲結構
    4.3.2  串名的存儲映象
    4.3.3  基於堆結構的基本運算
  4.4  塊鏈串
  4.5  KMP模式匹配演算法
    4.5.1  KMP模式匹配演算法的原理
    4.5.2  next函數
    4.5.3  KMP演算法實現
  習題與訓練
第五章  數組和廣義表
  5.1  數組
    5.1.1  數組的邏輯結構
    5.1.2  數組的存儲結構
  5.2  特殊矩陣的壓縮存儲
    5.2.1  對稱矩陣
    5.2.2  三角矩陣
    5.2.3  帶狀矩陣
  5.3  稀疏矩陣的壓縮存儲
    5.3.1  稀疏矩陣的三元組表存儲
    5.3.2  稀疏矩陣的十字鏈表存儲料
  5.4  廣義表
    5.4.1  廣義表的定義和基本運算
    5.4.2  廣義表的存儲
  習題與訓練
第六章  二叉樹與樹
  6.1  二叉樹
    6.1.1  二叉樹的定義
    6.1.2  二叉樹的基本概念
    6.1.3  二叉樹的主要性質
  6.2  二叉樹的存儲結構
    6.2.1  順序存儲結構
    6.2.2  鏈式存儲結構
  6.3  二叉樹的遍歷
    6.3.1  二叉樹遍歷的遞歸實現
    6.3.2  二叉樹遍歷的非遞歸實現料
    6.3.3  二叉樹的層次遍歷
    6.3.4  遍歷序列恢復二叉樹
    6.3.5  遍歷二叉樹的應用

  6.4  線索二叉樹料
  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  應用舉例
  習題與訓練
第七章  圖
  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  求某一源點到其餘各頂點的最短路徑
    7.5.2  求任意一對頂點的最短路徑
  7.6  有向無環圖的應用
    7.6.1  AOV網與拓撲排序
    7.6.2  AOE圖與關鍵路徑**
  習題與訓練
第八章  查找
  8.1  基本概念
  8.2  靜態查找表
    8.2.1  順序表
    8.2.2  有序順序表
    8.2.3  索引順序表
    8.2.4  倒排表
  8.3  動態查找表
    8.3.1  二叉排序樹
    8.3.2  平衡二叉樹料
    8.3.3  B樹料
  8.4  哈希表的查找
    8.4.1  什麼是哈希表
    8.4.2  哈希函數的構造方法
    8.4.3  處理衝突的方法
    8.4.4  哈希表的查找過程

  習題與訓練
第九章  排序
  9.1  排序的基礎知識
    9.1.1  排序的基本概念
    9.1.2  排序的分類
    9.1.3  存儲結構
  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.3.4  基數排序料
  9.4  各種內部排序方法的綜合比較
  習題與訓練
第十章  經典演算法介紹
  10.1  分治法
  10.2  貪婪法
  10.3  回溯法
  10.4  動態規劃法
  習題與訓練
參考文獻