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

數據結構和算法 Python和C++語言描述

數據結構和算法 Python和C++語言描述

定 價:¥89.00

作 者: 戴維·M.瑞德,約翰·策勒 著,肖鑒明 譯
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787115527400 出版時間: 2020-04-01 包裝: 平裝
開本: 16開 頁數: 394 字數:  

內容簡介

  本書使用Python 和C++兩種編程語言來介紹數據結構。全書內容共15 章。書中首先介紹了抽象與分析、數據的抽象等數據結構的基本原理和知識,然后結合Python 的特點介紹了容器類、鏈式結構和迭代器、堆棧和隊列、遞歸、樹;隨后,簡單介紹了C++語言的知識,并進一步講解了C++類、C++的動態(tài)內存、C++的鏈式結構、C++模板、堆、平衡樹和散列表、圖等內容;最后對算法技術進行了總結。每章最后給出了一些練習題和編程練習,幫助讀者復習鞏固所學的知識。本書適合作為高等院校計算機相關專業(yè)數據結構課程的教材和參考書,也適合對數據結構知識感興趣的讀者學習參考。

作者簡介

  戴維·M. 瑞德(David M. Reed) 美國Capital大學計算機科學系教授,負責教授Python和C++ 編程。他擁有俄亥俄州立大學計算機博士學位。約翰·策勒(John Zelle)美國Wartburg 大學數學和計算機系教授。他負責教授Python 程序設計課程,是《Python程序設計(第3版)》一書的作者。

圖書目錄

目 錄
第 1 章 抽象與分析 1
1.1 概要 1
1.1.1 大型編程. 1
1.1.2 前方的道路 2
1.2 功能的抽象 3
1.2.1 契約式設計 3
1.2.2 驗證先驗條件 6
1.2.3 自上而下的設計. 9
1.2.4 記錄副作用. 11
1.3 算法分析. 12
1.3.1 線性搜索 12
1.3.2 二分搜索 14
1.3.3 非正式的算法比較. 15
1.3.4 算法的正式分析 17
1.3.5 大O 符號與Θ 符號 21
1.4 小結 23
1.5 練習 23
第 2 章 數據的抽象. 27
2.1 概要 27
2.2 抽象數據類型 27
2.2.1 從數據類型到抽象數據
類型. 28
2.2.2 定義抽象數據類型. 28
2.2.3 實現抽象數據類型. 30
2.3 抽象數據類型和對象 32
2.3.1 規(guī)范. 32
2.3.2 實現. 34
2.3.3 改變存儲方式 35
2.3.4 面向對象的設計和編程. 36
2.4 抽象數據類型的實例:
數據集(Dataset) 38
2.4.1 面向對象設計的過程 38
2.4.2 定義一個抽象數據
類型. 39
2.4.3 實現這個抽象數據類型. 41
2.5 抽象數據類型的實例:
有理數(Rational)?。?2
2.5.1 運算符重載.42
2.5.2 有理數(Rational)類44
2.6 增量開發(fā)以及單元測試45
2.7 小結48
2.8 練習48
第3 章 容器類52
3.1 概要52
3.2 Python 的列表52
3.3 順序集合:撲克牌牌組53
3.4 有序集合:手牌.56
3.4.1 創(chuàng)建橋牌的手牌56
3.4.2 比較撲克牌.58
3.4.3 撲克牌排序.59
3.5 Python 里列表的實現61
3.5.1 基于數組的列表61
3.5.2 效率分析62
3.6 Python 的字典(選讀) .63
3.6.1 字典抽象數據類型63
3.6.2 熟悉Python 字典.64
3.6.3 字典的實現.65
3.6.4 擴展示例:馬爾可夫鏈67
3.7 小結70
3.8 練習71
第4 章 鏈式結構和迭代器.75
4.1 概要75
4.2 Python 的內存模型75
傳遞參數80
4.3 鏈表實現.81
4.4 鏈表抽象數據類型的實現.85
4.5 迭代器95
4.5.1 Python 的迭代器95
4.5.2 在鏈表(LList)里
添加迭代器.96
4.5.3 通過Python 的生成器來
迭代 97
4.6 基于游標的列表API(選讀) . 99
4.6.1 游標(Cursor)的
API 99
4.6.2 Python 的游標列表
(CursorList) 100
4.6.3 鏈式結構的游標列表
(CursorList) 102
4.7 鏈表vs 數組 104
4.8 小結. 104
4.9 練習. 105
第5 章 堆棧和隊列 109
5.1 概要. 109
5.2 堆棧. 109
5.2.1 堆棧抽象數據類型 109
5.2.2 堆棧的簡單應用 110
5.2.3 堆棧的實現 112
5.2.4 應用程序:處理算術
方程. 113
5.2.5 應用程序:語法的處理
(選讀) . 116
5.3 隊列. 119
5.3.1 隊列抽象數據類型 119
5.3.2 隊列的簡單應用 120
5.4 隊列的實現. 121
5.5 應用程序示例:隊列的模擬
(選讀)?。?23
5.6 小結. 128
5.7 練習. 128
第6 章 遞歸 133
6.1 概要. 133
6.2 遞歸定義 134
6.3 簡單的遞歸示例 136
6.3.1 示例:字符串反轉 136
6.3.2 示例:字謎 137
6.3.3 示例:快速計算指數. 138
6.3.4 示例:二分搜索 139
6.4 遞歸的分析. 140
6.5 排序.142
6.5.1 遞歸設計:歸并排序142
6.5.2 分析歸并排序.144
6.6 一個“難”題:漢諾塔146
6.7 小結.149
6.8 練習.150
第7 章 樹156
7.1 概要.156
7.2 樹的術語156
7.3 示例應用程序:表達式樹158
7.4 樹的存儲方式159
7.5 應用:二叉搜索樹.160
7.5.1 二分查找屬性.160
7.5.2 實現一個二叉搜索樹161
7.5.3 遍歷整個二叉搜索樹
(BST) 166
7.5.4 二叉搜索樹(BST)的
運行時分析168
7.6 使用二叉搜索樹(BST)來
實現映射(選讀)169
7.7 小結.171
7.8 練習.172
第8 章 為Python 程序員準備的
C++簡介.177
8.1 概要.177
8.2 C++的歷史和背景178
8.3 注釋、代碼塊、變量名和
關鍵字.182
8.4 數據類型和變量聲明183
8.5 Include 語句、命名空間
以及輸入/輸出186
8.6 編譯.189
8.7 表達式和運算符優(yōu)先級191
8.8 條件語句193
8.9 數據類型轉換196
8.10 循環(huán)語句197
8.11 數組199
8.11.1 一維數組199
8.11.2 多維數組201
8.11.3 字符數組. 201
8.12 函數的細節(jié) 202
8.12.1 聲明、定義以及原型. 202
8.12.2 值傳遞 205
8.12.3 引用傳遞. 205
8.12.4 將數組作為參數傳遞. 206
8.12.5 常量參數 208
8.12.6 默認參數. 208
8.13 頭文件和內聯函數 209
8.14 斷言與測試 213
8.15 變量的作用域以及生命周期. 214
8.16 Python 程序員編寫C++程序
時的常見錯誤. 215
8.17 其他的C++相關話題
(選讀) 216
8.17.1 C++的Switch 語句. 216
8.17.2 創(chuàng)建C++的命名空間. 218
8.17.3 全局變量. 219
8.18 小結 220
8.19 練習 220
第9 章 C++類. 224
9.1 基本的語法和語義. 224
9.2 字符串 232
9.3 文件輸入和輸出 234
9.4 運算符重載. 236
9.5 類變量和方法 242
9.6 小結. 246
9.7 練習. 246
第 10 章 C++的動態(tài)內存. 250
10.1 概要 250
10.2 C++的指針 254
10.3 動態(tài)數組 259
10.4 動態(tài)內存類 263
10.4.1 析構函數. 263
10.4.2 復制構造函數 265
10.4.3 賦值運算符 268
10.4.4 完整的動態(tài)數組類 270
10.4.5 引用返回類型 275
10.5 動態(tài)內存錯誤. 276
10.5.1 內存泄漏.276
10.5.2 訪問無效內存277
10.5.3 內存錯誤總結280
10.6 小結281
10.7 練習281
第 11 章 C++的鏈式結構285
11.1 概要285
11.2 C++鏈式結構的類286
11.3 C++鏈表.288
11.4 C++鏈接的動態(tài)內存錯誤.298
11.5 小結299
11.6 練習300
第 12 章 C++模板.302
12.1 概要302
12.2 模板方法303
12.3 模板類.305
12.3.1 標準模板庫的
vector 類305
12.3.2 用戶定義的模板類.308
12.4 小結 311
12.5 練習312
第 13 章 堆、平衡樹和散列表314
13.1 概要314
13.2 優(yōu)先隊列和堆.314
13.2.1 堆排序320
13.2.2 關于堆和優(yōu)先隊列
實現的說明320
13.3 平衡樹.321
13.4 其他的樹結構.329
13.5 散列表.329
13.6 小結339
13.7 練習339
第 14 章 圖.343
14.1 概要343
14.2 圖數據結構344
14.3 最短路徑算法.347
14.3.1 無權最短路徑347
14.3.2 加權最短路徑350
14.4 深度優(yōu)先算法.353
14.5 最小生成樹 357
14.5.1 Kruskal 算法. 358
14.5.2 不交集數據結構. 358
14.5.3 Prim 算法 361
14.6 小結 361
14.7 練習 362
第 15 章 算法技術 365
15.1 概要 365
15.2 分治算法 365
15.2.1 分析遞歸函數 366
15.2.2 快速排序.368
15.3 貪心算法372
15.4 動態(tài)規(guī)劃378
15.4.1 最長公共子序列379
15.4.2 記憶化382
15.4.3 矩陣鏈乘法382
15.5 NP 完全問題383
15.6 小結384
15.7 練習385
術語表387

本目錄推薦

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