 
			 
				| 書名: | 數據結構:C++語言版 | 
| 作者/主編: | 秦鋒,湯亞玲 | 
| 齣版社: | 人民郵電齣版社 | 
| ISBN號: | 9787115358615 | 
| 齣版年份: | 2014年9月 | 
| 版次: | 第1版 | 
| 總頁數: | 268頁 | 
| 開本: | |
| 圖書定價: | 39元 | 
| 實際重量: | 380g | 
| 新舊程度: | 正版全新 | 
前言
第1章 緒論
1.1 數據結構的概念
1.1.1 什麼是數據結構
1.1.2 學習數據結構的意義
1.2 基本概念和術語
1.2.1 數據與數據元素
1.2.2 數據的邏輯結構
1.2.3 數據的存儲結構
1.2.4 數據運算
1.2.5 數據類型
1.2.6 抽象數據類型
1.3 算法和算法分析
1.3.1 算法定義及描述
1.3.2 算法評價
1.3.3 算法性能分析與度量
本章小結
習題
第2章 C++程序設計基礎知識
2.1 C++的基本操作
2.1.1 C++的基本輸入與輸齣
2.1.2 函數及其參數傳遞
2.2 類與對象
2.2.1 類定義
2.2.2 對象定義與聲明
2.2.3 類與對象的使用
2.2.4 對象數組
2.2.5 動態存儲分配
2.2.6 構造函數與析構函數
2.2.7 繼承和派生
2.2.8 虛函數
本章小結
習題
第3章 綫性錶
3.1 綫性錶的定義及其運算
3.1.1 綫性錶的定義
3.1.2 綫性錶的運算
3.1.3 綫性錶的抽象數據類型描述
3.2 綫性錶的順序存儲結構
3.2.1 順序錶結構
3.2.2 順序錶運算
3.2.3 順序錶存儲空間的動態分配
3.3 綫性錶的鏈式存儲結構
3.3.1 單鏈錶結構
3.3.2 單鏈錶運算
3.3.3 循環鏈錶結構
3.3.4 雙嚮鏈錶結構
3.4 順序錶與鏈式錶的比較
3.5 算法應用舉例
本章小結
習題
第4章 棧和隊列
4.1 棧
4.1.1 棧的抽象數據類型
4.1.2 順序棧
4.1.3 鏈棧
4.1.4 棧的應用
4.2 隊列
4.2.1 隊列的抽象數據類型
4.2.2 順序隊列
4.2.3 鏈隊列
4.2.4 隊列的應用
4.3 遞歸
4.3.1 遞歸算法書寫要點及方法
4.3.2 遞歸過程的調用和返迴
4.3.3 遞歸的應用
4.3.4 遞歸函數的非遞歸化
本章小結
習題
第5章 串
5.1 C++語言的字符和字符串
5.1.1 C++語言的字符和字符串
5.1.2 一個簡單的C++函數
5.2 串及其基本運算
5.2.1 串的基本概念
5.2.2 串的基本運算
5.3 串的順序存儲及基本運算
5.3.1 串的定長順序存儲
5.3.2 順序串的數據類型定義
5.3.3 定長順序串的基本運算
5.3.4 模式匹配
5.4 串的鏈式存儲結構
5.5 串操作應用
本章小結
習題
第6章 數組和廣義錶
6.1 數組
6.1.1 數組的定義
6.1.2 數組的內存映像
6.2 特殊矩陣的壓縮存儲
6.2.1 對稱矩陣
6.2.2 三角矩陣
6.2.3 稀疏矩陣
6.3 廣義錶
6.3.1 廣義錶的定義
6.3.2 廣義錶的存儲
6.3.3 廣義錶基本操作的實現
本章小結
習題
第7章 樹和二叉樹
7.1 樹的基本概念
7.1.1 樹的定義及其錶示
7.1.2 基本術語
7.2 二叉樹
7.2.1 二叉樹的定義
7.2.2 二叉樹的性質
7.2.3 二叉樹的存儲結構
7.2.4 二叉樹抽象數據類型
7.3 遍曆二叉樹
7.3.1 先序遍曆
7.3.2 中序遍曆
7.3.3 後序遍曆
7.3.4 按層次遍曆二叉樹
7.3.5 遍曆算法的應用舉例
7.4 綫索二叉樹
7.4.1 綫索的概念
7.4.2 綫索的描述
7.4.3 綫索的算法實現
7.4.4 綫索二叉樹上的運算
7.5 樹與森林
7.5.1 樹的存儲結構
7.5.2 樹、森林和二叉樹的轉換
7.5.3 樹和森林的遍曆
7.6 哈夫曼樹
7.6.1 基本術語
7.6.2 哈夫曼樹的建立
7.6.3 哈夫曼樹的應用
本章小結
習題
第8章 圖
8.1 圖的基本概念
8.1.1 圖的定義和術語
8.1.2 圖的基本操作
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 應用圖的遍曆判定圖的連通性
8.3.4 圖的遍曆的其他應用
8.4 生成樹和小生成樹
8.4.1 生成樹及生成森林
8.4.2 小生成樹的概念
8.4.3 構造小生成樹的Prim算法
8.4.4 構造小生成樹的Kruskal算法
8.5 短路徑
8.5.1 單源點的短路徑
8.5.2 每對頂點之間的短路徑
8.6 有嚮無環圖及其應用
8.6.1 有嚮無環圖的概念
8.6.2 AOV網與拓撲排序
8.6.3 AOE網與關鍵路徑
本章小結
習題
第9章 查找
9.1 基本概念
9.2 靜態查找錶
9.2.1 順序查找
9.2.2 有序錶的查找
9.2.3 分塊查找
9.3 動態查找錶I—樹錶查找
9.3.1 二叉排序樹
9.3.2 平衡二叉樹(AVL樹)
9.3.3 B-樹和B+樹
9.4 動態查找錶Ⅱ—哈希錶查找(雜湊法)
9.4.1 常用的哈希方法
9.4.2 處理衝突的方法
9.4.3 哈希錶的操作
本章小結
習題
第10章 排序
10.1 基本概念
10.2 插入排序
10.2.1 直接插入排序
10.2.2 二分插入排序
10.2.3 希爾排序
10.3 交換排序
10.3.1 冒泡排序
10.3.2 快速排序
10.4 選擇排序
10.4.1 簡單選擇排序
10.4.2 樹型選擇排序
10.4.3 堆排序
10.5 歸並排序
10.6 分配排序
10.6.1 多關鍵碼排序
10.6.2 鏈式基數排序
10.7 各種內排序方法的比較和選擇
本章小結
習題
本書在簡要迴顧基本C++程序設計概念的基礎上,全麵地介紹瞭隊列、堆棧、樹、圖等基本數據結構。本書將C++語言作為數據結構的算法描述語言。一方麵對傳統的數據結構內容進行瞭C++語言實現,另一方麵將數據結構與麵嚮對象技術結閤起來,圍繞抽象數據類型的概念來討論每一種數據結構及算法。書中大量C++語言的程序實例既是數據結構的具體實現,又是麵嚮對象技術的算法基礎。本書理論與實踐並重,每章都有大量的習題,強調數據結構的應用價值。
本書可作為計算機類及信息類相關的核心教材,也可供廣大研究開發人員自學參考使用。
這本書的排版和示例代碼的規範性也值得稱贊。在學習數據結構時,代碼的可讀性至關重要,因為算法本身邏輯就已經比較復雜瞭,如果代碼風格混亂,那簡直是雪上加霜。這本書的C++代碼示例,從命名規範到注釋的詳略得當,都體現瞭專業齣版物的嚴謹態度。特彆是涉及到模闆編程和類繼承來構建復雜結構時,作者對`const`的正確使用、析構函數的處理,以及如何安全地管理動態內存的細節把握得非常到位,這對於我們這些在實際項目中經常要和遺留代碼打交道的開發者來說,是學習優秀編程習慣的絕佳範例。它潛移默化地教會瞭我如何在C++中寫齣既高效又健壯的代碼,不僅僅是如何讓程序跑起來,更是如何讓程序“優雅”地跑起來。這對於提升我的整體代碼質量幫助非常大。
評分這本書的深度和廣度都超齣瞭我的預期,遠非市麵上那些隻停留在錶麵概念的“速成”書籍可比。真正讓我眼前一亮的是它在高級數據結構部分的處理。關於圖論算法的闡述,比如Dijkstra和Floyd-Warshall,作者沒有直接跳到最優解的代碼實現,而是先用不同的場景引入問題,比如最短路徑、最小生成樹等,讓讀者充分理解“為什麼需要這個算法”。隨後,對於每種算法的每一步操作,都配上瞭非常精妙的僞代碼和C++實現細節,尤其是對優先隊列在Dijkstra算法中應用的那部分,講解得細緻入微,讓我徹底搞明白瞭優先隊列內部是如何工作的,這在其他任何一本教材裏都很難找到如此深入的剖析。對於那些打算未來從事高性能計算或者係統底層開發的朋友來說,這種對底層邏輯的深挖絕對是無價之寶。它培養的不是簡單的“會寫代碼”的能力,而是“理解代碼運行原理”的思維方式。
評分我原本以為C++版的數據結構會充斥著大量的模闆元編程或者過於現代化的STL容器封裝,結果大齣所料,它非常注重基礎和核心概念的“裸奔”實現。作者似乎刻意地讓讀者繞開STL提供的便利,去親手構建那些復雜結構,比如自己動手實現一個平衡二叉搜索樹(AVL或紅黑樹),或者親手編寫一個哈希錶的衝突解決機製。這種“手搓”的過程雖然辛苦,但帶來的收獲是巨大的。我清晰地看到瞭遞歸是如何在樹的遍曆中發揮作用的,也深刻體會瞭在插入和刪除操作中保持樹的平衡是多麼精妙的設計。這種實踐導嚮的教學方式,極大地增強瞭我對指針操作的熟練度,同時也讓我對C++的內存模型有瞭更直觀的認識。這本書的習題設計也很有針對性,大多不是簡單的套用公式,而是需要你結閤所學的結構特性進行優化和修改,非常鍛煉解決問題的能力。
評分作為一名已經工作幾年,但感覺基礎知識有所鬆動的工程師,我這本書帶給我的“查漏補缺”體驗是極其高效的。我之前總是在麵試中被問到堆棧的區彆和應用場景,每次都隻能含糊其辭。這本教材在講解棧和隊列時,不僅清晰區分瞭它們的LIFO和FIFO特性,更重要的是,它用非常巧妙的篇幅對比瞭用數組、鏈錶以及C++標準庫中特定容器實現這兩種結構時的性能權衡和適用邊界。這種對比性的分析視角,讓我瞬間理解瞭為什麼在某些需要快速訪問隊列頭部的場景,我們必須選擇鏈式結構而不是順序存儲。對於那些已經有編程經驗的人來說,這種高級彆的抽象和比較,能夠迅速幫你把散亂的知識點串聯起來,形成一個完整的知識網絡,而不是孤立的知識點。翻閱起來非常流暢,不會有那種“為瞭講理論而硬湊內容”的感覺。
評分這本書簡直是為我這種初學者量身定做的!我之前嘗試過其他幾本號稱“入門”的教材,結果不是代碼晦澀難懂,就是理論部分講得過於抽象,完全抓不住重點。但是這本,從最基礎的數組、鏈錶開始,就用極其清晰的圖示和逐步深入的講解,讓我感覺自己真的在一步步構建知識體係。作者在講解指針和內存管理那幾章時,真是下瞭大功夫,不是簡單地拋齣概念,而是結閤實際的內存模型,用C++特有的方式去解釋,這對於後續學習麵嚮對象和復雜數據結構(比如樹和圖)打下瞭無比堅實的基礎。特彆是它對時間復雜度和空間復雜度的分析,不是那種冷冰冰的公式堆砌,而是用生動的例子展示算法效率的差異,讓我一下子就理解瞭為什麼我們要追求更優的算法。讀完前幾章,我甚至有信心去挑戰一些力扣上的簡單題瞭,這種學習的成就感是其他書沒給我的。它不僅是本教材,更像是一位耐心的導師,隨時準備幫你掃清學習路上的每一個障礙。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有