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

出版時間:2008-10  出版社:電子工業(yè)出版社  作者:左飛  頁數(shù):531  
Tag標(biāo)簽:無  

前言

  本書緣起  一家世界一流的IT公司給其面試者出了如下兩道測試題?! ?.一輛有7節(jié)車廂的列車在星期五下午18點(diǎn)17分離開車站,并以50 km/h的速度行駛?,F(xiàn)在是周末,請問你要去哪里?  2.股票A目前的報價是100元。3個月后,這個價錢可能漲到120元,也可能跌到90元。如果現(xiàn)在給你一次機(jī)會允許你用110元錢在接下來的3個月內(nèi)買這個股票,你將如何使用這110元錢。請將你的決策過程告訴我們?! o獨(dú)有偶,許多世界頂級的軟件公司都喜歡在面試時問一些考查應(yīng)試者思維能力的問題,為什么呢?道理很簡

內(nèi)容概要

  本書是一部關(guān)于計算機(jī)科學(xué)與工程領(lǐng)域基礎(chǔ)性核心課程——數(shù)據(jù)結(jié)構(gòu)與算法的專著。全書以典型數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計方法及問題求解方法為研究對象,用C++面向?qū)ο蟪绦蛟O(shè)計語言作為描述語言,時刻突出對經(jīng)典問題求解這一要旨,并將豐富的C++語言程序設(shè)計實(shí)踐融入其中。  全書采用“數(shù)據(jù)結(jié)構(gòu)原理描述→面向?qū)ο髮?shí)現(xiàn)→解決經(jīng)典問題→STL介紹”的基本架構(gòu),既強(qiáng)調(diào)理論的完整性,又突出實(shí)例引導(dǎo)的驅(qū)動性,用經(jīng)典問題和大量背景描述提高讀者的閱讀興趣,從而使原本枯燥的理論變得妙趣橫生?;谏鲜隹蚣?,本書簡要回顧了基本C++程序設(shè)計方法后,又全面系統(tǒng)地介紹了鏈表、隊列、棧、樹、圖等基本數(shù)據(jù)結(jié)構(gòu)。此外,本書還提供了近百個算法、數(shù)十個經(jīng)典問題和十余個綜合問題的完整實(shí)現(xiàn)代碼近萬余行?! ”緯鴥?nèi)容實(shí)用,體例新穎,結(jié)構(gòu)清晰,既可以作為大、中專院校在校師生相關(guān)課程的參考書,也可以作為信息學(xué)競賽中數(shù)據(jù)結(jié)構(gòu)方面的輔導(dǎo)用書。此外,本書也可供計算機(jī)科學(xué)與工程領(lǐng)域從業(yè)人員參考和查閱。

書籍目錄

第1章 緒論	11.1 數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)	21.1.1 數(shù)據(jù)及其類型	21.1.2 數(shù)據(jù)結(jié)構(gòu)簡介	41.2 算法	61.2.1 算法的概念	61.2.2 算法的分析	81.2.3 算法的設(shè)計	121.3 C++語言簡介	181.3.1 C++的產(chǎn)生與發(fā)展	181.3.2 C++與面向?qū)ο笏枷?201.3.3 C++中的類和對象	231.4 本章小結(jié)	28第2章 C++編程基礎(chǔ)	292.1 開始C++編程	302.1.1 輸入輸出	302.1.2 預(yù)處理	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 拷貝構(gòu)造函數(shù)	612.3 豐富的C++特性	652.3.1 常量	652.3.2 函數(shù)重載	682.3.3 運(yùn)算符重載	712.3.4 異常處理	772.4 代碼重用機(jī)制	792.4.1 繼承	802.4.2 多態(tài)	872.4.3 模板	902.5 標(biāo)準(zhǔn)模板庫	932.5.1 STL簡介	942.5.2 STL構(gòu)成	952.5.3 STL的不同版本	972.6 本章小結(jié)	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)內(nèi)存管理	1423.4.1 關(guān)鍵詞new和delete	1433.4.2 避免內(nèi)存錯誤	1463.5 本章小結(jié)	152第4章 鏈表	1534.1 單向鏈表	1544.1.1 單向鏈表的結(jié)構(gòu)	1544.1.2 單向鏈表類的實(shí)現(xiàn)	1554.1.3 有序鏈表的合并	1624.1.4 多項式加法問題	1634.2 單向循環(huán)鏈表	1644.2.1 單向循環(huán)鏈表的結(jié)構(gòu)	1644.2.2 單向循環(huán)鏈表類的實(shí)現(xiàn)	1664.2.3 約瑟夫問題	1694.2.4 魔術(shù)師發(fā)牌問題	1704.2.5 拉丁方陣問題	1724.3 雙向循環(huán)鏈表	1734.3.1 雙向循環(huán)鏈表的結(jié)構(gòu)	1734.3.2 雙向循環(huán)鏈表類的實(shí)現(xiàn)	1744.3.3 Vigenere加密問題	1824.3.4 選美比賽問題	1844.4 游標(biāo)類的設(shè)計與實(shí)現(xiàn)	1864.4.1 游標(biāo)類的結(jié)構(gòu)	1864.4.2 游標(biāo)類的實(shí)現(xiàn)	1874.5 STL與鏈表	1914.5.1 STL中鏈表類的接口	1914.5.2 遍歷	1944.5.3 元素的插入與刪除	1964.6 本章小結(jié)	196第5章 棧與隊列	1975.1 棧	1985.1.1 棧的結(jié)構(gòu)	1985.1.2 棧的實(shí)現(xiàn)	1995.1.3 括號匹配問題	2035.1.4 停車場模擬問題	2045.2 隊列	2085.2.1 隊列的結(jié)構(gòu)	2085.2.2 隊列的實(shí)現(xiàn)	2105.2.3 舞伴問題	2145.2.4 楊輝三角形問題	2155.2.5 游程編碼問題	2165.3 優(yōu)先級隊列	2185.3.1 優(yōu)先級隊列的結(jié)構(gòu)	2185.3.2 優(yōu)先級隊列的實(shí)現(xiàn)	2205.4 STL中的棧與隊列	2225.4.1 STL中的stack	2225.4.2 STL中的queue	2245.4.3 STL中的priority_queue	2265.5 本章小結(jié)	229第6章 遞歸	2316.1 遞歸的概念	2326.1.1 遞歸的定義	2326.1.2 應(yīng)用遞歸的原則	2356.1.3 遞歸和非遞歸的轉(zhuǎn)化	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 本章小結(jié)	265第7章 樹	2677.1 樹的概念	2687.1.1 樹的定義	2687.1.2 樹的術(shù)語	2717.1.3 樹的抽象數(shù)據(jù)類型	2727.2 二叉樹	2737.2.1 二叉樹的定義	2737.2.2 二叉樹的性質(zhì)	2757.2.3 二叉樹的實(shí)現(xiàn)	2767.2.4 二叉樹的遍歷	2857.2.5 二叉樹的線索化	2897.3 樹與森林	2917.3.1 樹的存儲表示	2917.3.2 樹的實(shí)現(xiàn)	2947.3.3 樹與森林的遍歷	2987.3.4 森林與二叉樹的轉(zhuǎn)換	3007.4 霍夫曼樹	3047.4.1 霍夫曼樹的概念	3047.4.2 霍夫曼樹的構(gòu)造方法	3057.4.3 霍夫曼編碼及其實(shí)現(xiàn)	3077.5 堆	3137.5.1 堆的概念	3147.5.2 堆的建立	3147.5.3 堆的操作	3167.6 基于STL實(shí)現(xiàn)樹結(jié)構(gòu)	3177.6.1 STL中的vector	3177.6.2 STL中的map	3217.7 醫(yī)院建模問題	3237.8 本章小結(jié)	328第8章 圖	3298.1 圖的基本概念	3308.1.1 圖的定義	3308.1.2 圖的術(shù)語	3318.1.3 圖的運(yùn)算	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 固定起點(diǎn)最短路問題	3538.4.2 非固定起點(diǎn)最短路問題	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 本章小結(jié)	392第9章 樹形搜索結(jié)構(gòu)	3939.1 二叉搜索樹	3949.1.1 二叉搜索樹的概念	3949.1.2 二叉搜索樹的操作	3959.1.3 二叉搜索樹的實(shí)現(xiàn)	3979.1.4 二叉搜索樹的分析	4009.2 AVL樹	4039.2.1 AVL樹的概念	4049.2.2 AVL樹的旋轉(zhuǎn)	4059.2.3 AVL樹的實(shí)現(xiàn)	4109.3 紅黑樹	4189.3.1 紅黑樹的概念	4189.3.2 紅黑樹的操作	4219.3.3 紅黑樹的實(shí)現(xiàn)	4289.4 Trie樹	4339.4.1 Trie樹的概念	4339.4.2 Trie樹的表示	4349.4.3 Trie樹的實(shí)現(xiàn)	4359.5 本章小結(jié)	439第10章 集合與字典	44110.1 集合論基礎(chǔ)	44210.1.1 集合的概念	44210.1.2 集合的運(yùn)算	44410.2 集合的實(shí)現(xiàn)	44510.2.1 位向量集合	44510.2.2 鏈表集合	45110.3 字典	46010.3.1 字典的概念	46110.3.2 搜索運(yùn)算	46310.4 散列	46710.4.1 散列的概念	46710.4.2 散列函數(shù)	46910.4.3 處理散列沖突	47110.4.4 散列的應(yīng)用	47510.5 經(jīng)典問題舉例	47610.5.1 拼寫檢查問題	47610.5.2 無線網(wǎng)絡(luò)問題	48510.5.3 第K個數(shù)問題	48810.6 STL中的set	49010.7 本章小結(jié)	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 本章小結(jié)	531參考文獻(xiàn)		533

編輯推薦

  《C++數(shù)據(jù)結(jié)構(gòu)原理與經(jīng)典問題求解》內(nèi)容實(shí)用,體例新穎,結(jié)構(gòu)清晰,既可以作為大、中專院校在校師生相關(guān)課程的參考書,也可以作為信息學(xué)競賽中數(shù)據(jù)結(jié)構(gòu)方面的輔導(dǎo)用書。此外,《C++數(shù)據(jù)結(jié)構(gòu)原理與經(jīng)典問題求解》也可供計算機(jī)科學(xué)與工程領(lǐng)域從業(yè)人員參考和查閱?!  禖++數(shù)據(jù)結(jié)構(gòu)原理與經(jīng)典問題求解》有以下特點(diǎn):  內(nèi)外兼修:精湛高超的C++編程技巧與級富魅力的算法合計藝術(shù)相得益彰;  神形并重:生動的經(jīng)典問題求解與豐富的數(shù)據(jù)結(jié)構(gòu)原理娓娓道來;  潤物無聲:編程技能的培養(yǎng)與抽象思維的訓(xùn)練渾然一體;  由淺入深,通俗易懂,注重趣味性,避免枯燥說教;  內(nèi)容生動,結(jié)構(gòu)合理,強(qiáng)調(diào)實(shí)踐性,編程實(shí)例豐富;  理念先進(jìn),方法為要,突出多角度,倡導(dǎo)正確思想。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    C++數(shù)據(jù)結(jié)構(gòu)原理與經(jīng)典問題求解 PDF格式下載


用戶評論 (總計1條)

 
 

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

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

京ICP備13047387號-7