C++數(shù)據(jù)結構原理與經(jīng)典問題求解

出版時間: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格式下載


用戶評論 (總計1條)

 
 

  •     第四章的代碼出現(xiàn)了幾處嚴重錯誤,并不限于下面列出的:
      
      1.單鏈表中,莫名地出現(xiàn)了對成員cur的調用/返回,但卻看不見對cur成員的定義。
      
      2.單向循環(huán)鏈表的應用中,魔術師發(fā)牌問題的求解,poker.getNextNode(), 函數(shù)在哪兒定義的? 翻看了半天上下文,猜測這里應該調用poker.getNext()。
      
      3.所有的模板類定義,均沒有找到析構函數(shù),即使是在使用了
      new StackNode<T>的情況下。
      
      網(wǎng)上查了一下:勘誤表、源代碼一個都找不到,書中所謂源代碼網(wǎng)址:”http://books.vcer.net/data“,永遠都是返回:“無法鏈接到”的錯誤;給作者發(fā)郵件,猶如石沉大海...
      
      請問電子工業(yè)出版社、請問左飛先生,能負責任點兒嗎?
      對得住那些紙、墨嗎?
      對得住讀者的48塊人民幣嗎?
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7