注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計C/C++及其相關數據結構與算法:C++版

數據結構與算法:C++版

數據結構與算法:C++版

定 價:¥69.00

作 者: (美)Adam Drozdek著;陳曙暉譯;陳曙暉譯
出版社: 清華大學出版社
叢編項: 國外計算機科學經典教材
標 簽: 數據結構

ISBN: 9787302063964 出版時間: 2003-04-01 包裝: 平裝
開本: 26cm 頁數: 564 字數:  

內容簡介

  本書是一本介紹數據結構與算法的優(yōu)秀書籍。本書系統(tǒng)介紹了C++面向對象程序設計、算法復雜度、鏈表、棧、隊列、遞歸、樹、圖、排序和查找算法、散列技術、數據壓縮算法、內存管理等內容;尤其對遞歸算法進行了深入剖析。在附錄中詳細介紹了大O符號與標準模板庫;在大多數章中提供了相應的實例分析和程序設計作業(yè)。本書適合作為計算機軟件專業(yè)或其他相關專業(yè)的教科書。對于需要參加計算機考試,或者希望自學計算機軟件開發(fā)的人員也有非常大的幫助。本書以案例驅動的方式,全面介紹了計算機科學的重要領域——數據結構,并以目前應用最為廣泛的C++語言實現相關的算法。書中不僅特別強調了數據結構與算法之間的聯系,包括算法復雜度分析,而且介紹了面向對象程序設計環(huán)境中的數據結構,重點講述了隱藏信息封裝和分解處理的原理。與同類教材相比,本書不僅提供了任何軟件系統(tǒng)從設計、實現、測試到維護所需的基本概念,詳盡地討論了同類教材中少見的內存管理和數據壓縮主題,還將對遞歸的討論置于運行時堆棧環(huán)境中,使讀者對遞歸有更明晰的理解。此外,本書各章(第2章除外)提供了一個可供測試的程序分析以演示特定的數據結構和算法,并將相關C++標準模板庫應用在程序分析中。貫穿全書的C++示例代碼演示了數據結構的實踐價值,精心設計的程序設計課后作業(yè)可以使學生能夠學以致用。因此,無論是對數據結構的初學者,還是對有一定基礎的學生,本書都是一本不可多得的新型數據結構教材。

作者簡介

暫缺《數據結構與算法:C++版》作者簡介

圖書目錄

第1章 C++面向對象程序設計
 1.1 抽象數據類型
 1.2 封裝
 1.3 繼承
 1.4 指針
 1.4.1 指針和數組
 1.4.2 指針和復制構造函數
 1.4.3 指針和折構函數
 1.4.4 指針和引用變量
 1.4.5 函數指針
 1.5 多態(tài)性
 1.6 C++和面向對象程序設計
 1.7 標準模板庫
 1.7.1 容器
 1.7.2 迭代器
 1.7.3 算法
 1.7.4 函數對象
 1.8 標準模板庫中的向量
 1.9 數據結構與面向對象編程
 1.10 實例分析:隨機訪問文件
 1.11 習題
 1.12 程序設計作業(yè)
 第2章 復雜度分析
 2.1 計算復雜度和漸進復雜度
 2.2 大O符號
 2.3 大O符號的性質
 2.4 符號與O符號
 2.5 可能的問題
 2.6 復雜度舉例
 2.7 尋找漸近復雜度舉例
 2.8 最好平均和最壞情況
 2.9 阻尼復雜度
 2.10 習題
 第3章 鏈表
 3.1 單鏈表
 3.1.1 插入
 3.1.2 刪除
 3.1.3 查找
 3.2 雙鏈表
 3.3 循環(huán)鏈表
 3.4 跳躍鏈表
 3.5 自組織鏈表
 3.6 稀疏表
 3.7 標準模板庫中的鏈表
 3.8 標準模板庫中的雙端隊列
 3.9 總結評價
 3.10 實例分析:圖書館
 3.11 習題
 3.12 程序設計作業(yè)
 第4章 棧與隊列
 4.1 棧
 4.2 隊列
 4.3 優(yōu)先隊列
 4.4 標準模板庫中的棧
 4.5 標準模板庫中的隊列
 4.6 標準模板庫中的優(yōu)先隊列
 4.7 實例分析:迷宮問題
 4.8 習題
 4.9 程序設計作業(yè)
 第5章 遞歸
 5.1 遞歸定義
 5.2 函數調用與遞歸實現
 5.3 遞歸調用的剖析
 5.4 尾部遞歸
 5.5 非尾部遞歸
 5.6 間接遞歸
 5.7 嵌套遞歸
 5.8 不合理遞歸
 5.9 回溯
 5.10 結束總結
 5.11 實例分析:遞歸下降解釋器
 5.12 習題
 5.13 程序設計作業(yè)
 第6章 二叉樹
 6.1 樹二叉樹和二叉搜索樹
 6.2 二叉樹的實現
 6.3 搜索一棵二叉搜索樹
 6.4 樹的遍歷
 6.4.1 廣度優(yōu)先遍歷
 6.4.2 深度優(yōu)先遍歷
 6.4.3 不用棧實現的深度優(yōu)先遍歷
 6.5 插入
 6.6 刪除
 6.6.1 通過合并進行刪除
 6.6.2 通過復制進行刪除
 6.7 平衡樹
 6.7.1 DSW算法
 6.7.2 AVL樹
 6.8 自調整樹
 6.8.1 自重新構造樹
 6.8.2 “傾斜(splaying)”策略
 6.9 堆
 6.9.1 將堆作為優(yōu)先隊列
 6.9.2 將數組組織為難
 6.10 波蘭式表示和表達式樹
 6.11 實例分析:計算單詞頻率
 6.12 習題
 6.13 程序設計作業(yè)
 第7章 多叉樹
 7.1 B-樹家族
 7.1.1 B樹
 7.1.2 B*-樹
 7.1.3 B+樹
 7.1.4 前綴B+樹
 7.1.5 位樹
 7.1.6 R樹
 7.1.7 2-4樹
 7.1.8 在標準模板庫中的集和多集
 7.1.9 在標準模板庫中的映射和多映射
 7.2 trie
 7.3 結束總結
 7.4 實例分析:拼寫檢查器
 7.5 習題
 7.6 程序設計作業(yè)
 第8章 圖
 8.1 圖的表示法
 8.2 圖的遺歷
 8.3 最短路徑
 8.4 環(huán)的檢測
 8.5 生成樹
 8.5.1 勃赫如夫加算法
 8.5.2 克魯斯卡爾算法
 8.5.3 普里姆算法
 8.5.4 迪杰斯特拉方法
 8.6 連通性
 8.6.1 無向圖中的連通性
 8.6.2 有向圖中的連通性
 8.7 拓撲排序
 8.8 網絡
 8.8.1 最大流
 8.8.2 最小代價的最大流
 8.9 匹配
 8.9.1 分配問題
 8.9.2 非二分圖中的匹配
 8.10 歐拉(Eulerian)圖與漢密爾頓(Hamiltonian)圖
 8.10.1 Eulerian圖
 8.10.2 Hamiltonian圖
 8.11 實例分析:惟一代表(Distinct Representatives)
 8.12 習題
 8.13 程序設計作業(yè)
 第9章 排序
 9.1 基本的排序算法
 9.1.1 插入排序
 9.1.2 選擇排序
 9.1.3 冒泡排序
 9.2 決策樹
 9.3 高效排序算法
 9.3.1 希爾排序
 9.3.2 堆排序
 9.3.3 快速排序
 9.3.4 歸并排序
 9.3.5 基數排序
 9.4 標準模板庫中的排序
 9.5 小結
 9.6 實例分析:多項式相加
 9.7 習題
 9.8 程序設計作業(yè)
 第10章 散列
 10.1 散列函數
 10.1.1 除余法
 10.1.2 折疊法
 10.1.3 平方取中法
 10.1.4 提取法
 10.1.5 基數轉換法
 10.2 沖突解決方法
 10.2.1 開放定址法
 10.2.2 拉鏈法
 10.2.3 桶定址
 10.3 刪除
 10.4 理想散列函數
 10.4.1 Cichelli方法
 10.4.2 FHCD算法
 10.5 可擴展文件的散列函數
 10.5.1 可擴展散列
 10.5.2 線性散列
 10.6 實例分析:使用桶的散列
 10.7 習題
 10.8 程序設計作業(yè)
 第11章 數據壓縮
 11.1 數據壓縮的條件
 11.2 Huffman編碼
 11.3 Shannon-Fano編碼
 11.4 Run-Length編碼方式
 11.5 Ziv-Lempel編碼方式
 11.6 實例分析:Huffman方法和Run-Length編碼方式
 11.7 習題
 11.8 程序設計作業(yè)
 第12章 內存管理
 12.1 sequential-fit方法
 12.2 Nonsequential-fit方法
 12.3 無用單元回收
 12.3.1 標記和清除
 12.3.2 復制方法
 12.3.3 遞增的無用單元回收
 12.4 結束總結
 12.5 實例分析
 12.6 習題
 12.7 程序設計
 附錄A 計算大O
 A.1 調和數序列n
 A.2 函數lg(N?。┑慕浦?br /> A.3 快速排序中平均情況的大O
 A.4 隨機二進制樹中的平均路徑長度
 附錄B 標準模板庫中的算法

本目錄推薦

掃描二維碼
Copyright ? 讀書網 afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號