出版時間:2008-10 出版社:電子工業(yè)出版社 作者:左飛 頁數(shù):531
Tag標簽:無
前言
本書緣起 一家世界一流的IT公司給其面試者出了如下兩道測試題。 1.一輛有7節(jié)車廂的列車在星期五下午18點17分離開車站,并以50 km/h的速度行駛。現(xiàn)在是周末,請問你要去哪里? 2.股票A目前的報價是100元。3個月后,這個價錢可能漲到120元,也可能跌到90元。如果現(xiàn)在給你一次機會允許你用110元錢在接下來的3個月內買這個股票,你將如何使用這110元錢。請將你的決策過程告訴我們?! o獨有偶,許多世界頂級的軟件公司都喜歡在面試時問一些考查應試者思維能力的問題,為什么呢?道理很簡
內容概要
本書是一部關于計算機科學與工程領域基礎性核心課程——數(shù)據(jù)結構與算法的專著。全書以典型數(shù)據(jù)結構、程序設計方法及問題求解方法為研究對象,用C++面向對象程序設計語言作為描述語言,時刻突出對經(jīng)典問題求解這一要旨,并將豐富的C++語言程序設計實踐融入其中?! ∪珪捎谩皵?shù)據(jù)結構原理描述→面向對象實現(xiàn)→解決經(jīng)典問題→STL介紹”的基本架構,既強調理論的完整性,又突出實例引導的驅動性,用經(jīng)典問題和大量背景描述提高讀者的閱讀興趣,從而使原本枯燥的理論變得妙趣橫生。基于上述框架,本書簡要回顧了基本C++程序設計方法后,又全面系統(tǒng)地介紹了鏈表、隊列、棧、樹、圖等基本數(shù)據(jù)結構。此外,本書還提供了近百個算法、數(shù)十個經(jīng)典問題和十余個綜合問題的完整實現(xiàn)代碼近萬余行。 本書內容實用,體例新穎,結構清晰,既可以作為大、中專院校在校師生相關課程的參考書,也可以作為信息學競賽中數(shù)據(jù)結構方面的輔導用書。此外,本書也可供計算機科學與工程領域從業(yè)人員參考和查閱。
書籍目錄
第1章 緒論 11.1 數(shù)據(jù)與數(shù)據(jù)結構 21.1.1 數(shù)據(jù)及其類型 21.1.2 數(shù)據(jù)結構簡介 41.2 算法 61.2.1 算法的概念 61.2.2 算法的分析 81.2.3 算法的設計 121.3 C++語言簡介 181.3.1 C++的產(chǎn)生與發(fā)展 181.3.2 C++與面向對象思想 201.3.3 C++中的類和對象 231.4 本章小結 28第2章 C++編程基礎 292.1 開始C++編程 302.1.1 輸入輸出 302.1.2 預處理 382.1.3 名字空間 442.2 深入的類編程 502.2.1 訪問控制 502.2.2 初始化與清除 532.2.3 動態(tài)創(chuàng)建對象 572.2.4 友元函數(shù) 602.2.5 拷貝構造函數(shù) 612.3 豐富的C++特性 652.3.1 常量 652.3.2 函數(shù)重載 682.3.3 運算符重載 712.3.4 異常處理 772.4 代碼重用機制 792.4.1 繼承 802.4.2 多態(tài) 872.4.3 模板 902.5 標準模板庫 932.5.1 STL簡介 942.5.2 STL構成 952.5.3 STL的不同版本 972.6 本章小結 98第3章 指針、數(shù)組與字符串 993.1 指針 1003.1.1 指針的概念 1003.1.2 指針的語法 1023.1.3 函數(shù)與參數(shù)傳遞 1033.2 數(shù)組 1083.2.1 數(shù)組定義與初始化 1093.2.2 數(shù)組與指針 1133.2.3 數(shù)組的抽象數(shù)據(jù)類型 1163.2.4 大整數(shù)乘法問題 1203.2.5 荷蘭國旗問題 1213.3 字符串 1243.3.1 C++中的字符串 1243.3.2 字符串抽象數(shù)據(jù)類型 1263.3.3 字符串的匹配算法 1283.3.4 字符串指數(shù)問題 1413.4 動態(tài)內存管理 1423.4.1 關鍵詞new和delete 1433.4.2 避免內存錯誤 1463.5 本章小結 152第4章 鏈表 1534.1 單向鏈表 1544.1.1 單向鏈表的結構 1544.1.2 單向鏈表類的實現(xiàn) 1554.1.3 有序鏈表的合并 1624.1.4 多項式加法問題 1634.2 單向循環(huán)鏈表 1644.2.1 單向循環(huán)鏈表的結構 1644.2.2 單向循環(huán)鏈表類的實現(xiàn) 1664.2.3 約瑟夫問題 1694.2.4 魔術師發(fā)牌問題 1704.2.5 拉丁方陣問題 1724.3 雙向循環(huán)鏈表 1734.3.1 雙向循環(huán)鏈表的結構 1734.3.2 雙向循環(huán)鏈表類的實現(xiàn) 1744.3.3 Vigenere加密問題 1824.3.4 選美比賽問題 1844.4 游標類的設計與實現(xiàn) 1864.4.1 游標類的結構 1864.4.2 游標類的實現(xiàn) 1874.5 STL與鏈表 1914.5.1 STL中鏈表類的接口 1914.5.2 遍歷 1944.5.3 元素的插入與刪除 1964.6 本章小結 196第5章 棧與隊列 1975.1 棧 1985.1.1 棧的結構 1985.1.2 棧的實現(xiàn) 1995.1.3 括號匹配問題 2035.1.4 停車場模擬問題 2045.2 隊列 2085.2.1 隊列的結構 2085.2.2 隊列的實現(xiàn) 2105.2.3 舞伴問題 2145.2.4 楊輝三角形問題 2155.2.5 游程編碼問題 2165.3 優(yōu)先級隊列 2185.3.1 優(yōu)先級隊列的結構 2185.3.2 優(yōu)先級隊列的實現(xiàn) 2205.4 STL中的棧與隊列 2225.4.1 STL中的stack 2225.4.2 STL中的queue 2245.4.3 STL中的priority_queue 2265.5 本章小結 229第6章 遞歸 2316.1 遞歸的概念 2326.1.1 遞歸的定義 2326.1.2 應用遞歸的原則 2356.1.3 遞歸和非遞歸的轉化 2406.2 分治法 2436.2.1 分治法簡述 2436.2.2 漢諾塔問題 2446.2.3 傳染病問題 2466.3 回溯法 2506.3.1 回溯法簡述 2516.3.2 迷宮問題 2516.3.3 八皇后問題 2556.3.4 騎士周游問題 2586.4 本章小結 265第7章 樹 2677.1 樹的概念 2687.1.1 樹的定義 2687.1.2 樹的術語 2717.1.3 樹的抽象數(shù)據(jù)類型 2727.2 二叉樹 2737.2.1 二叉樹的定義 2737.2.2 二叉樹的性質 2757.2.3 二叉樹的實現(xiàn) 2767.2.4 二叉樹的遍歷 2857.2.5 二叉樹的線索化 2897.3 樹與森林 2917.3.1 樹的存儲表示 2917.3.2 樹的實現(xiàn) 2947.3.3 樹與森林的遍歷 2987.3.4 森林與二叉樹的轉換 3007.4 霍夫曼樹 3047.4.1 霍夫曼樹的概念 3047.4.2 霍夫曼樹的構造方法 3057.4.3 霍夫曼編碼及其實現(xiàn) 3077.5 堆 3137.5.1 堆的概念 3147.5.2 堆的建立 3147.5.3 堆的操作 3167.6 基于STL實現(xiàn)樹結構 3177.6.1 STL中的vector 3177.6.2 STL中的map 3217.7 醫(yī)院建模問題 3237.8 本章小結 328第8章 圖 3298.1 圖的基本概念 3308.1.1 圖的定義 3308.1.2 圖的術語 3318.1.3 圖的運算 3348.1.4 圖的抽象數(shù)據(jù)類型 3368.2 圖的存儲與表示 3378.2.1 圖的鄰接矩陣表示 3378.2.2 圖的鄰接表表示 3398.2.3 兩種表示法的比較 3428.3 圖的遍歷 3428.3.1 歐拉路徑與歐拉回路 3438.3.2 哈密爾頓路徑與哈密爾頓回路 3458.3.3 廣度優(yōu)先遍歷 3468.3.4 深度優(yōu)先遍歷 3498.4 最短路徑問題 3538.4.1 固定起點最短路問題 3538.4.2 非固定起點最短路問題 3558.4.3 最短路徑的動態(tài)規(guī)劃解法 3588.4.4 旅游交通路線問題 3648.5 最小生成樹 3728.5.1 最小生成樹的定義 3728.5.2 克魯斯卡爾算法 3738.5.3 普里姆算法 3758.6 經(jīng)典問題舉例 3798.6.1 文字游戲問題 3808.6.2 道路修建問題 3828.6.3 回家路線問題 3858.6.4 水塘計算問題 3878.6.5 棍子還原問題 3898.7 本章小結 392第9章 樹形搜索結構 3939.1 二叉搜索樹 3949.1.1 二叉搜索樹的概念 3949.1.2 二叉搜索樹的操作 3959.1.3 二叉搜索樹的實現(xiàn) 3979.1.4 二叉搜索樹的分析 4009.2 AVL樹 4039.2.1 AVL樹的概念 4049.2.2 AVL樹的旋轉 4059.2.3 AVL樹的實現(xiàn) 4109.3 紅黑樹 4189.3.1 紅黑樹的概念 4189.3.2 紅黑樹的操作 4219.3.3 紅黑樹的實現(xiàn) 4289.4 Trie樹 4339.4.1 Trie樹的概念 4339.4.2 Trie樹的表示 4349.4.3 Trie樹的實現(xiàn) 4359.5 本章小結 439第10章 集合與字典 44110.1 集合論基礎 44210.1.1 集合的概念 44210.1.2 集合的運算 44410.2 集合的實現(xiàn) 44510.2.1 位向量集合 44510.2.2 鏈表集合 45110.3 字典 46010.3.1 字典的概念 46110.3.2 搜索運算 46310.4 散列 46710.4.1 散列的概念 46710.4.2 散列函數(shù) 46910.4.3 處理散列沖突 47110.4.4 散列的應用 47510.5 經(jīng)典問題舉例 47610.5.1 拼寫檢查問題 47610.5.2 無線網(wǎng)絡問題 48510.5.3 第K個數(shù)問題 48810.6 STL中的set 49010.7 本章小結 493第11章 排序 49511.1 排序問題概述 49611.1.1 基本概念和定義 49611.1.2 排序算法的分類 49711.1.3 排序算法分析與選擇 49711.2 插入排序 49811.2.1 直接插入排序 49811.2.2 二分法插入排序 50111.2.3 希爾排序 50311.3 選擇排序 50611.3.1 直接選擇排序 50611.3.2 堆排序 50811.4 交換排序 51211.4.1 冒泡法排序 51211.4.2 Shaker排序 51411.4.3 快速排序 51711.5 歸并排序 52211.6 計數(shù)排序 52611.7 本章小結 531參考文獻 533
編輯推薦
《C++數(shù)據(jù)結構原理與經(jīng)典問題求解》內容實用,體例新穎,結構清晰,既可以作為大、中專院校在校師生相關課程的參考書,也可以作為信息學競賽中數(shù)據(jù)結構方面的輔導用書。此外,《C++數(shù)據(jù)結構原理與經(jīng)典問題求解》也可供計算機科學與工程領域從業(yè)人員參考和查閱?! 禖++數(shù)據(jù)結構原理與經(jīng)典問題求解》有以下特點: 內外兼修:精湛高超的C++編程技巧與級富魅力的算法合計藝術相得益彰; 神形并重:生動的經(jīng)典問題求解與豐富的數(shù)據(jù)結構原理娓娓道來; 潤物無聲:編程技能的培養(yǎng)與抽象思維的訓練渾然一體; 由淺入深,通俗易懂,注重趣味性,避免枯燥說教; 內容生動,結構合理,強調實踐性,編程實例豐富; 理念先進,方法為要,突出多角度,倡導正確思想。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
C++數(shù)據(jù)結構原理與經(jīng)典問題求解 PDF格式下載