商品描述
本書是關於C++程序設計的經典教材,中文版分為基礎篇和進階篇,主要介紹程序設計基礎、面向對象程序設計和數據結構。本書採用“基礎優先,問題驅動”的教學方式,在設計自定義類之前介紹基本的編程概念和技術,同時側重於解決問題而非語法,通過不同領域的示例說明相關概念。本書引導讀者循序漸進地學習,從基本的編程技術到面向對象編程,從簡單的數據類型到經典的結構。本書可作為高等院校計算機相關專業程序設計課程的教材,也可作為C++語言及編程愛好者的參考書。
作者簡介
梁勇,喬治亞南方大學計算機科學榮休教授。之前曾是普渡大學計算機科學系副教授並曾兩次獲得普渡大學卓越研究獎。他撰寫了30多本著作,其中程序設計類教材在世界各地得到廣泛使用。
目錄大綱
譯者序
前言
作者簡介
第17章 遞歸
17.1 簡介
17.2 案例研究:計算階乘
17.3 案例研究:斐波那契數
17.4 使用遞歸解決問題
17.5 遞歸輔助函數
17.5.1 選擇排序
17.5.2 二分查找
17.6 漢諾塔
17.7 八皇後問題
17.8 遞歸與疊代
17.9 尾遞歸
關鍵術語
章節總結
編程練習
第18章 開發高效算法
18.1 簡介
18.2 使用大O表示法衡量算法效率
18.3 示例:確定大O
18.4 分析算法時間覆雜度
18.4.1 分析二分查找
18.4.2 分析選擇排序
18.4.3 分析漢諾塔問題
18.4.4 常見的遞歸關系
18.4.5 比較常見的增長函數
18.5 使用動態規劃求斐波那契數
18.6 使用歐幾里得算法求最大公約數
18.7 尋找質數的高效算法
18.8 使用分治法尋找最近點對
18.9 使用回溯法解決八皇後問題
18.10 案例研究:尋找凸包
18.10.1 禮品包裝算法
18.10.2 Graham算法
18.11 字符串匹配
18.11.1 Boyer-Moore算法
18.11.2 Knuth-Morris-Pratt算法
關鍵術語
章節總結
編程練習
第19章 排序
19.1 簡介
19.2 插入排序
19.3 冒泡排序
19.4 歸並排序
19.5 快速排序
19.6 堆排序
19.6.1 存儲堆
19.6.2 添加新節點
19.6.3 刪除根
19.6.4 Heap類
19.6.5 使用Heap類進行排序
19.6.6 堆排序的時間覆雜度
19.7 桶排序和基數排序
19.8 外部排序
19.8.1 實現第一階段
19.8.2 實現第二階段
19.8.3 合成兩個階段
19.8.4 外部排序覆雜度
關鍵術語
章節總結
編程練習
第20章 鏈表、隊列和優先級隊列
第21章 二叉查找樹
第22章 STL容器
第23章 STL算法
第24章 散列
第25章 AVL樹
第26章 圖及其應用
第27章 加權圖及其應用
附錄A C++關鍵字
附錄B ASCII字符集
附錄C 運算符優先級表
附錄D 數字系統
附錄E 按位運算
附錄F 使用命令行參數
附錄G 枚舉類型
附錄H 正則表達式
附錄I 大O、大Omega和大Theta表示法