TOP
0
0
【簡體曬書節】 單本79折,5本7折,優惠只到5/31,點擊此處看更多!
數據結構和算法 Python和C++語言描述(簡體書)
滿額折

數據結構和算法 Python和C++語言描述(簡體書)

商品資訊

人民幣定價:89 元
定價
:NT$ 534 元
優惠價
87465
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:13 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

本書使用Python 和C++兩種編程語言來介紹數據結構。全書內容共15 章。書中首先介紹了抽象與分析、數據的抽象等數據結構的基本原理和知識,然後結合Python 的特點介紹了容器類、鏈式結構和迭代器、堆棧和隊列、遞歸、樹;隨後,簡單介紹了C++語言的知識,並進一步講解了C++類、C++的動態內存、C++的鏈式結構、C++模板、堆、平衡樹和散列表、圖等內容;最後對算法技術進行了總結。每章最後給出了一些練習題和編程練習,幫助讀者複習鞏固所學的知識。

本書適合作為高等院校計算機相關專業數據結構課程的教材和參考書,也適合對數據結構知識感興趣的讀者學習參考。

作者簡介

戴維·M. 瑞德(David M. Reed), 美國Capital大學計算機科學系教授,負責教授Python和C++ 編程。他擁有俄亥俄州立大學計算機博士學位。

約翰·策勒(John Zelle),美國Wartburg 大學數學和計算機系教授。他負責教授Python 程序設計課程,是《Python程序設計(第3版)》一書的作者。

名人/編輯推薦

本書使用Python和C++兩種編程語言來介紹數據結構。Python的面向對象特性, 讓它成為一種非常適合用來學習數據結構課程的語言。C++的語法比Python更複雜,但是在學習了Python並掌握了基本的編程概念之後,學習C++的語法變得更為容易。
本書首先介紹了抽象與算法分析、數據的抽象等數據結構的基本原理和知識, 然後結合Python的特點介紹了容器類、鏈式結構和迭代器、堆棧和隊列、遞歸、樹;隨後,簡單介紹了C++語言的知識,並進一步講解了C++類、C++的動態內存、C++的鏈式結構、C++模板、堆、平衡樹和散列表、圖等內容;最後對算法技術進行了總結。每章末尾給出了一些練習題和編程練習,幫助讀者複習鞏固所學的知識。
本書適合作為高等院校計算機相關專業數據結構課程的教材和參考書,也適合對數據結構感興趣的讀者學習參考。
隨書附贈源代碼,可在異步社區輕鬆下載。

目次

第 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 規範. 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) .42
2.5.1 運算符重載.42
2.5.2 有理數(Rational)類44
2.6 增量開發以及單元測試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 創建橋牌的手牌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 應用程序示例:隊列的模擬
(選讀) . 123
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 表達式和運算符優先級191
8.8 條件語句193
8.9 數據類型轉換196
8.10 循環語句197
8.11 數組199
8.11.1 一維數組199
8.11.2 多維數組201
8.11.3 字符數組. 201
8.12 函數的細節 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 創建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++的動態內存. 250
10.1 概要 250
10.2 C++的指針 254
10.3 動態數組 259
10.4 動態內存類 263
10.4.1 析構函數. 263
10.4.2 複製構造函數 265
10.4.3 賦值運算符 268
10.4.4 完整的動態數組類 270
10.4.5 引用返回類型 275
10.5 動態內存錯誤. 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++鏈接的動態內存錯誤.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 優先隊列和堆.314
13.2.1 堆排序320
13.2.2 關於堆和優先隊列
實現的說明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 深度優先算法.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 動態規劃378
15.4.1 最長公共子序列379
15.4.2 記憶化382
15.4.3 矩陣鏈乘法382
15.5 NP 完全問題383
15.6 小結384
15.7 練習385
術語表387

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 465
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區