數(shù)據(jù)結(jié)構(gòu)

出版時(shí)間:2010-9  出版社:高等教育出版社  作者:劉大有 等編著  頁數(shù):655  字?jǐn)?shù):950000  
Tag標(biāo)簽:無  

前言

數(shù)據(jù)結(jié)構(gòu)與算法緊密相關(guān)。算法是求解問題的步驟,它必須是確定的(無歧義)、可行的、有限的。此外,它可以有零個(gè)或多個(gè)輸入,但必須有輸出。注意不要將算法和計(jì)算機(jī)程序等同起來,后者可作為描述前者的手段之一。除了使用算法描述語言描述算法之外,還可用流程圖、形式語言、程序設(shè)計(jì)語言,甚至自然語言等對(duì)算法進(jìn)行描述。但不管怎么樣,“算法是貫穿在所有計(jì)算機(jī)程序設(shè)計(jì)中的一個(gè)基本概念”(D. E. Knuth,1997)、“算法是計(jì)算機(jī)科學(xué)的靈魂”(Umesh Vazirani,2008)等觀點(diǎn),卻是計(jì)算機(jī)界眾多學(xué)者所認(rèn)同的。算法學(xué)是系統(tǒng)研究算法的一門科學(xué)。通常,它主要包括算法設(shè)計(jì)、算法正確性證明及算法分析三個(gè)部分。算法設(shè)計(jì)是創(chuàng)建算法的過程,它研究良好的創(chuàng)建方法以及算法與數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系和作用;算法或其關(guān)鍵步驟正確性證明的基本途徑是數(shù)學(xué)歸納法;算法時(shí)間復(fù)雜性分析是算法分析的重要內(nèi)容之一。在算法的時(shí)間復(fù)雜性分析方面,有時(shí)只得到復(fù)雜性的階是不夠的,要給出更精確的分析結(jié)果,還要知道復(fù)雜性的階前面的系數(shù)。自20世紀(jì)60年代初開始,計(jì)算機(jī)越發(fā)頻繁地用于解決一些非數(shù)值分析問題。解決這些問題主要使用計(jì)算機(jī)的邏輯判斷能力而非其算術(shù)運(yùn)算能力。當(dāng)然,“非數(shù)值分析”實(shí)際上是關(guān)于這一研究領(lǐng)域的一個(gè)極其負(fù)面的稱謂,最好應(yīng)有一個(gè)正面的名稱?!靶畔⑻幚怼碧^寬泛,而“程序設(shè)計(jì)技術(shù)”又顯得過窄,稱其為“計(jì)算機(jī)算法分析”似乎恰當(dāng)一些。

內(nèi)容概要

本書是國家精品課程“數(shù)據(jù)結(jié)構(gòu)”的研究成果之一,是面向21世紀(jì)課程教材和普通高等教育“十一五”國家級(jí)規(guī)劃教材。本書系統(tǒng)介紹了數(shù)據(jù)結(jié)構(gòu)的概念、原理與技術(shù),主要內(nèi)容包括緒論,基本數(shù)據(jù)結(jié)構(gòu),排序、查找與內(nèi)存管理,相關(guān)工具和文件等。其中,第一章緒論主要對(duì)算法描述語言(ADL)、算法書寫規(guī)范、數(shù)據(jù)結(jié)構(gòu)與算法基本概念、算法分析基礎(chǔ)和算法正確性證明等進(jìn)行了介紹;第二至五章是基本數(shù)據(jù)結(jié)構(gòu)部分,主要涉及線性表、堆棧和隊(duì)列,數(shù)組和字符串,樹與二叉樹,圖結(jié)構(gòu)等內(nèi)容;第七至九章從算法的視角討論了排序、查找和內(nèi)存管理等方面的內(nèi)容,給出了若干典型算法的描述、時(shí)間復(fù)雜性分析和相關(guān)算法的比較等;第六章和十一章分別對(duì)遞歸和隨機(jī)數(shù)兩種主要工具進(jìn)行了講解,其中隨機(jī)數(shù)是數(shù)據(jù)結(jié)構(gòu)的新內(nèi)容;文件這種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)則在第十章中闡明。
本書的附錄主要包括書中ADL算法的C++程序、一些基本數(shù)據(jù)結(jié)構(gòu)的C++
類實(shí)現(xiàn)以及習(xí)題答案或解題思路。本書配套教學(xué)資源中包括電子教案、ADL
算法的C++程序、較難習(xí)題答案的C++代碼以及相關(guān)的測(cè)試和運(yùn)行支持程序,可供讀者自學(xué)和上機(jī)使用。
本書可作為高等學(xué)校計(jì)算機(jī)相關(guān)專業(yè)的教材和教學(xué)參考書,也可供相關(guān)專業(yè)的工程技術(shù)人員參考使用。

作者簡介

劉大有,吉林大學(xué)教授、博士生導(dǎo)師。國家基金委專家評(píng)審組成員,吉林省計(jì)算機(jī)學(xué)會(huì)理事長,中國人工智能學(xué)會(huì)常務(wù)理事,知識(shí)工程與分布智能專委會(huì)副主任,中國計(jì)算機(jī)學(xué)會(huì)人工智能與模式識(shí)別專委會(huì)副主任。1997-2008年曾任國務(wù)院學(xué)位委員會(huì)學(xué)科評(píng)議組成員。在知識(shí)工程.專家系統(tǒng)、分布智能.智能體,時(shí)空推理和數(shù)據(jù)挖掘等方面取得了系統(tǒng)的創(chuàng)造性成果.為提高我國智能推理與智能系統(tǒng)等方面的研究與應(yīng)用水平做出了突出貢獻(xiàn)承擔(dān)國家和省部級(jí)項(xiàng)目50余項(xiàng),出版著作9部,發(fā)表論文390余篇,三大檢索270余篇;獲國家科技進(jìn)步獎(jiǎng)2項(xiàng)、省部級(jí)科技進(jìn)步獎(jiǎng)9項(xiàng);獲國家教學(xué)成果二等獎(jiǎng)1項(xiàng)、省教學(xué)成果一等獎(jiǎng)2項(xiàng)、國家精品課程和國家級(jí)教學(xué)團(tuán)隊(duì)稱號(hào);并獲國務(wù)院特殊津貼,省突出貢獻(xiàn)專家,首批和二批省管優(yōu)秀專家.一、二批省高級(jí)專家等榮譽(yù)。

書籍目錄

第一章 緒論
1.1 為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
1.2 數(shù)據(jù)結(jié)構(gòu)概念
1.2.1 數(shù)據(jù)的邏輯結(jié)構(gòu)
1.2.2 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
1.2.3 對(duì)數(shù)據(jù)結(jié)構(gòu)的操作
1.2.4 數(shù)據(jù)結(jié)構(gòu)示例
1.3 算法
1.3.1 算法及其特性
1.3.2 算法的描述
1.3.3 算法的評(píng)價(jià)準(zhǔn)則
1.4 算法的正確性證明
1.5 算法分析基礎(chǔ)
1.5.1 算法時(shí)間復(fù)雜性的分析方法
1.5.2 復(fù)雜性函數(shù)的漸近表示
1.5.3 算法時(shí)間與空間分析
1.5.4 計(jì)算復(fù)雜性和算法的效率
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第二章 線性表、堆棧和隊(duì)列
2.1 線性表的定義和基本操作
2.2 線性表的順序存儲(chǔ)結(jié)構(gòu)
2.3 線性表的鏈接存儲(chǔ)結(jié)構(gòu)
2.3.1 單鏈表
2.3.2 循環(huán)鏈表
2.3.3 雙向鏈表
2.4 復(fù)雜性分析
2.5 堆棧
2.5.1 堆棧的定義和基本操作
2.5.2 順序棧
2.5.3 鏈?zhǔn)綏?br /> 2.5.4 順序棧與鏈?zhǔn)綏5谋容^
2.5.5 堆棧應(yīng)用——括號(hào)匹配
2.6 隊(duì)列
2.6.1 隊(duì)列的定義和基本操作
2.6.2 順序隊(duì)列
2.6.3 鏈?zhǔn)疥?duì)列
2.6.4 順序隊(duì)列與鏈?zhǔn)疥?duì)列的比較
2.6.5 隊(duì)列與堆棧的擴(kuò)展
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第三章 數(shù)組和字符串
3.1 數(shù)組
3.1.1 數(shù)組的存儲(chǔ)和尋址
3.1.2 一維數(shù)組類
3.2 矩陣
3.2.1 矩陣類
3.2.2 特殊矩陣
3.2.3 三元組表
3.2.4 十字鏈表
3.3 字符串
3.3.1 字符串的定義與字符串類
3.3.2 模式匹配算法
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第四章 樹
4.1 樹的基本概念
4.1.1 樹的定義
4.1.2 樹的相關(guān)術(shù)語
4.2 二叉樹
4.2.1 二叉樹定義和主要性質(zhì)
4.2.2 二叉樹順序存儲(chǔ)
4.2.3 二叉樹鏈接存儲(chǔ)
4.2.4 二叉樹遍歷
4.2.5 創(chuàng)建二叉樹
4.2.6 復(fù)制二叉樹
4.3 線索二叉樹
4.3.1 線索二叉樹定義
4.3.2 線索二叉樹存儲(chǔ)
4.3.3 線索二叉樹基本算法
4.4 樹和森林
4.4.1 樹與二叉樹的轉(zhuǎn)換
4.4.2 樹的順序存儲(chǔ)
4.4.3 樹的鏈接存儲(chǔ)
4.4.4 樹和森林的遍歷
4.5 壓縮與哈夫曼樹
4.5.1 文件編碼
4.5.2 擴(kuò)充二叉樹
4.5.3 哈夫曼樹和哈夫曼編碼
4.6 應(yīng)用
4.6.1 表達(dá)式求值
4.6.2 分類與決策樹
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第五章 圖
5.1 圖的基本概念
5.2 圖的存儲(chǔ)結(jié)構(gòu)與類定義
5.2.1 存儲(chǔ)結(jié)構(gòu)
5.2.2 Graph類
5.3 圖的遍歷算法
5.3.1 深度優(yōu)先遍歷
5.3.2 廣度優(yōu)先遍歷
5.4 拓?fù)渑判?br /> 5.5 關(guān)鍵路徑
5.6 最短路徑問題
5.6.1 無權(quán)最短路徑問題
5.6.2 正權(quán)最短路徑問題
5.6.3 每對(duì)頂點(diǎn)之間的最短路徑
5.7 最小支撐樹
5.7.1 普里姆算法
5.7.2 克魯斯卡爾算法
5.8 圖的應(yīng)用
5.8.1 可及性與Wahall算法
5.8.2 連通分量
5.8.3 圖在網(wǎng)絡(luò)分析和信息檢索中的應(yīng)用
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第六章 遞歸
6.1 遞歸的定義
6.2 基本遞歸過程
6.3 遞歸過程實(shí)現(xiàn)與堆棧
6.4 遞歸法求解問題
6.4.1 委員會(huì)問題
6.4.2 回溯
6.5 遞歸的效率
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第七章 排序
7.1 排序問題的基本概念
7.2 插入排序
7.2.1 直接插入排序
7.2.2 Shell排序
7.3 交換排序
7.3.1 冒泡排序
7.3.2 快速排序
7.4 選擇排序
7.4.1 直接選擇排序
7.4.2 堆排序
7.5 合并排序
7.6 基于關(guān)鍵詞比較的排序算法分析
7.6.1 平方階排序算法及改進(jìn)算法
7.6.2 線性對(duì)數(shù)階排序算法
7.6.3 分治排序的一般方法
7.6.4 基于關(guān)鍵詞比較的排序算法下界
7.7 分布排序
7.7.1 基數(shù)分布
7.7.2 值分布
7.8 外排序
7.8.1 外存儲(chǔ)器
7.8.2 磁帶排序
7.8.3 磁盤排序
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第八章 查找
8.1 順序查找
8.1.1 無序表的順序查找
8.1.2 有序表的順序查找
8.2 基于關(guān)鍵詞比較的查找
8.2.1 對(duì)半查找
8.2.2 一致對(duì)半查找
8.2.3 斐波那契查找
8.2.4 插值查找
8.3 二叉查找樹
8.3.1 基本概念和性質(zhì)
8.3.2 查找、插入和刪除
8.3.3 平均情況時(shí)間分析
8.4 最優(yōu)二叉查找樹
8.4.1 訪問頻率
8.4.2 最優(yōu)二叉查找樹
8.4.3 近似最優(yōu)樹的構(gòu)造
8.5 平衡樹
8.5.1 高度平衡樹
8.5.2 重量平衡樹
8.6 紅黑樹
8.6.1 紅黑樹的性質(zhì)
8.6.2 旋轉(zhuǎn)
8.6.3 插入
8.6.4 刪除
8.7 B樹及其變形樹
8.7.1 多又樹
8.7.2 B樹
8.7.3 B樹變形樹
8.8 數(shù)字查找
8.8.1 檢索結(jié)構(gòu)查找
8.8.2 數(shù)字樹查找
8.9 散列
8.9.1 散列函數(shù)
8.9.2 沖突調(diào)節(jié)
8.9.3 刪除
8.9.4 重量平衡樹的應(yīng)用——按位置查找
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第九章 內(nèi)存管理
9.1 概述
9.2 均勻大小記錄的分配和回收算法
9.2.1 記錄分配算法
9.2.2 訪問計(jì)數(shù)器法
9.2.3 廢料收集方法
9.3 不同大小記錄的分配和回收算法
9.3.1 查找分配策略
9.3.2 邊界標(biāo)識(shí)法
9.3.3 壓縮分配
9.4 伙伴系統(tǒng)
9.4.1 伙伴系統(tǒng)概述
9.4.2 分配記錄和釋放記錄算法
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第10章 文件
10.1 文件的基本概念
10.1.1 文件及其分類
10.1.2 文件的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)
10.2 順序文件
10.2.1 順序無序文件
10.2.2 順序有序文件
10.2.3 增補(bǔ)文件
10.3 散列文件
10.3.1 散列文件
10.3.2 可擴(kuò)充的散列文件
10.4 索引文件
10.4.1 動(dòng)態(tài)索引結(jié)構(gòu)和靜態(tài)索引結(jié)構(gòu)
10.4.2 ISAM文件
10.4.3 VSAM文件
10.5 多關(guān)鍵字文件
10.5.1 多重鏈表文件
10.5.2 倒排文件
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
第11章 隨機(jī)數(shù)
11.1 生成隨機(jī)數(shù)
11.1.1 均勻分布隨機(jī)數(shù)
11.1.2 其他分布隨機(jī)數(shù)
11.2 隨機(jī)數(shù)檢驗(yàn)
11.2.1 一般檢驗(yàn)方法
11.2.2 經(jīng)驗(yàn)檢驗(yàn)方法
11.3 隨機(jī)排列與隨機(jī)組合
11.3.1 隨機(jī)排列
11.3.2 隨機(jī)組合
11.4 應(yīng)用
11.4.1 隨機(jī)算法
11.4.2 使用隨機(jī)數(shù)的快速排序算法
小結(jié)
參考文獻(xiàn)與推薦讀物
習(xí)題
附錄
附錄1 各章算法的C++實(shí)現(xiàn)
附錄2 習(xí)題參考答案或解題思路

章節(jié)摘錄

插圖:本章的補(bǔ)充讀物建議如下:文獻(xiàn)[8]把數(shù)據(jù)結(jié)構(gòu)原理和算法分析技術(shù)有機(jī)結(jié)合在一起,系統(tǒng)介紹了基本的數(shù)據(jù)結(jié)構(gòu)、算法分析技術(shù)以及排序和檢索的各種方法,并簡要介紹了較高級(jí)的數(shù)據(jù)結(jié)構(gòu)和可計(jì)算性理論的一般知識(shí)。文獻(xiàn)[9]對(duì)算法分析所涉及的、幾乎取自每一數(shù)學(xué)分支的數(shù)學(xué)計(jì)算(或技術(shù))進(jìn)行了全面、深入的討論;精辟介紹了各種經(jīng)典算法,對(duì)算法復(fù)雜性進(jìn)行了嚴(yán)格分析,透徹闡明了算法正確性證明的方法;給出了數(shù)據(jù)結(jié)構(gòu)概念的嚴(yán)密定義;徹底厘清了數(shù)據(jù)結(jié)構(gòu)的歷史、文獻(xiàn)和發(fā)展脈絡(luò)。文獻(xiàn)[9]無疑是數(shù)據(jù)結(jié)構(gòu)和算法方面的一部最權(quán)威、內(nèi)容最豐富的經(jīng)典著作。文獻(xiàn)[10]提出了一種對(duì)算法進(jìn)行分類的新方法,基于該方法介紹了一些經(jīng)典的算法設(shè)計(jì)技術(shù),給出了算法效率分析的框架和分析方法。文獻(xiàn)[11]系統(tǒng)地介紹了基本數(shù)據(jù)結(jié)構(gòu)以及算法設(shè)計(jì)的方法、技術(shù)和應(yīng)用實(shí)例。文獻(xiàn)[12]從算法設(shè)計(jì)與算法分析的基本概念和方法入手,介紹了常用、經(jīng)典的算法設(shè)計(jì)技術(shù),給出每種技術(shù)的特征、應(yīng)用背景和應(yīng)用實(shí)例,并詳細(xì)分析了每個(gè)算法的復(fù)雜性。文獻(xiàn)[13]介紹了基本數(shù)據(jù)結(jié)構(gòu),將算法設(shè)計(jì)與分析結(jié)合在一起,重點(diǎn)討論了算法的設(shè)計(jì)策略、下界理論、NP難題和NP完全問題、近似算法和并行算法等。文獻(xiàn)[14]對(duì)計(jì)算機(jī)算法、算法設(shè)計(jì)策略進(jìn)行了全面、深入的介紹,采用大量的插圖說明算法的工作過程,每一個(gè)算法都給出了其運(yùn)行時(shí)間的詳細(xì)分析,分析過程既保持了數(shù)學(xué)的嚴(yán)謹(jǐn)性,又易于理解。

編輯推薦

《數(shù)據(jù)結(jié)構(gòu)(第2版)》特色:·采用兩種語言描述算法《數(shù)據(jù)結(jié)構(gòu)(第2版)》正文采用算法描述語言ADL描述算法。附錄提供算法的C++實(shí)現(xiàn)。這樣做有利于讀者將注意力聚焦于數(shù)據(jù)結(jié)構(gòu)與算法的關(guān)鍵部分.彌補(bǔ)了用C++語言描述算法既占用較多篇幅,又涉及較多程序設(shè)計(jì)細(xì)節(jié)的不足。·強(qiáng)調(diào)“數(shù)據(jù)結(jié)構(gòu)的嚴(yán)格性”《數(shù)據(jù)結(jié)構(gòu)(第2版)》對(duì)典型算法或給出時(shí)間復(fù)雜性分析或分析結(jié)果,特別對(duì)時(shí)間復(fù)雜性階相同的相關(guān)算法,既給出算法復(fù)雜性的階,又給出階前面的系數(shù);對(duì)某些算法,給出其關(guān)鍵問題(或步驟)的正確性證明。注重分析與證明的嚴(yán)格性。·突出啟發(fā)式教學(xué)與因材施教《數(shù)據(jù)結(jié)構(gòu)(第2版)》對(duì)一些較難的知識(shí)點(diǎn)設(shè)計(jì)了啟發(fā)式教學(xué)案例。在相關(guān)算法的銜接處,闡明后續(xù)算法形成的思想及其主要特點(diǎn);在展開算法描述之前,給出算法關(guān)鍵思想的刻畫;在每章結(jié)尾處。給出相關(guān)算法的比較。此外,對(duì)習(xí)題給出了難度級(jí)別,對(duì)較難習(xí)題給出了分級(jí)提示?!づ涮捉虒W(xué)資源豐富《數(shù)據(jù)結(jié)構(gòu)(第2版)》提供配套的電子講稿、全書ADL算法的C++程序、較難習(xí)題答案的C++代碼及相關(guān)的測(cè)試和運(yùn)行支持程序(可從中國高校計(jì)算機(jī)課程網(wǎng)上下載),可供讀者自學(xué)和上機(jī)使用。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    數(shù)據(jù)結(jié)構(gòu) PDF格式下載


用戶評(píng)論 (總計(jì)4條)

 
 

  •   書還沒看但是來的時(shí)候可能是在箱子底下的緣故吧,壓得很皺了
  •   這一本書,到處找都找不到,后來在亞馬遜找到了,送書的速度很快,書的質(zhì)量也很好,支持。
  •   學(xué)校要求買的,書是新的,可是有點(diǎn)破損。。??赡苁沁\(yùn)輸?shù)膯栴}吧。。。
  •   比嚴(yán)蔚敏老師的更加適合初學(xué)者
 

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

京ICP備13047387號(hào)-7