出版時間:2002-9 出版社:高等教育出版社 作者:張乃孝 頁數(shù):359 字?jǐn)?shù):440000
Tag標(biāo)簽:無
前言
關(guān)于算法的研究已經(jīng)有數(shù)千年的歷史。計算機(jī)的出現(xiàn),使得用機(jī)器自動解題的夢想成為現(xiàn)實,人們可以將算法編寫成程序交給計算機(jī)執(zhí)行,使許多原來認(rèn)為不可能完成的算法變得實際可行。數(shù)據(jù)結(jié)構(gòu)的概念最早由C.A.R.Hoare和N.Wirth在1966年提出。大量關(guān)于程序設(shè)計理論的研究表明:對大型復(fù)雜程序的構(gòu)造進(jìn)行系統(tǒng)而科學(xué)的研究,必須對這些程序中所包含的數(shù)據(jù)結(jié)構(gòu)進(jìn)行深入的研究。事實上,程序就是在數(shù)據(jù)的某些特定的結(jié)構(gòu)和表示的基礎(chǔ)上對于算法的描述。不清楚解決問題的算法就無法決定如何組織數(shù)據(jù),反之算法的實現(xiàn)又在很大程度上依賴于數(shù)據(jù)的具體組織。簡言之,算法與數(shù)據(jù)結(jié)構(gòu)是程序設(shè)計中相輔相成、不可分割的兩個方面。因此,1976年N.Wirth用“算法+數(shù)據(jù)結(jié)構(gòu)=程序”這個公式表達(dá)了算法與數(shù)據(jù)結(jié)構(gòu)的聯(lián)系和它們在程序中的地位?! 〕橄髷?shù)據(jù)類型起源于20世紀(jì)70年代,可以定義成:有一定行為(操作)的抽象(數(shù)學(xué))類型。它抽象出數(shù)據(jù)類型的使用要求,而把它的具體表示方式和運算的實現(xiàn)細(xì)節(jié)都隱藏起來。它支持?jǐn)?shù)據(jù)類型的實現(xiàn)與使用分離的原則,是一種十分有效的對問題進(jìn)行抽象與分解的思維工具,后來發(fā)展成為面向?qū)ο蠹夹g(shù)與方法的主要理論基礎(chǔ)。? 從抽象數(shù)據(jù)類型的觀點出發(fā),數(shù)據(jù)結(jié)構(gòu)可以理解成為“抽象數(shù)據(jù)類型的物理實現(xiàn)”。對于數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)和研究,主要圍繞兩個問題:一個是如何具體表示抽象數(shù)據(jù)類型中的數(shù)學(xué)模型;另一個是如何給出抽象數(shù)據(jù)類型中需要的操作的具體實現(xiàn)。用上述觀點,可以從更加抽象的角度理解數(shù)據(jù)結(jié)構(gòu)與算法的關(guān)系,也容易解釋數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與運算的三者關(guān)系。? 目的與動機(jī)? “數(shù)據(jù)結(jié)構(gòu)”(或稱“數(shù)據(jù)結(jié)構(gòu)與算法”或“算法與數(shù)據(jù)結(jié)構(gòu)”)是計算機(jī)科學(xué)的基礎(chǔ)課程,它被獨立列入大學(xué)本科的教學(xué)計劃有30多年的歷史。其主要目的是使讀者全面地理解數(shù)據(jù)結(jié)構(gòu)和算法的概念、掌握設(shè)計數(shù)據(jù)結(jié)構(gòu)與算法的主要原理和方法、比較不同數(shù)據(jù)結(jié)構(gòu)和算法的特點。通過學(xué)習(xí)和實踐,提高學(xué)生使用計算機(jī)解決問題的能力。? 1998年,北京大學(xué)把“算法與數(shù)據(jù)結(jié)構(gòu)”作為第一批理科各系主干基礎(chǔ)課列入學(xué)校的教學(xué)計劃。經(jīng)北大信息學(xué)院和數(shù)學(xué)學(xué)院共同推薦,著者連續(xù)六年被校長聘任為該課程的全校主持人,負(fù)責(zé)組織理科各院系的主講老師制定教學(xué)大綱、編寫教材和教學(xué)輔導(dǎo)用書、交流教學(xué)經(jīng)驗等工作?! ”緯牡谝话婢褪窃谶@個背景下,邀請了北大物理學(xué)院、化學(xué)學(xué)院和計算中心的幾位主講老師與著者共同編寫的。從2000年開始,本書作為北京大學(xué)主干課“算法與數(shù)據(jù)結(jié)構(gòu)”的教材在校內(nèi)試用,2002年得以在高等教育出版社正式出版,并得到廣大校內(nèi)外老師和學(xué)生的支持和鼓勵,被評為“2004年北京市高等教育精品教材”。為了回報廣大讀者,使得這本書能夠更上一個臺階,成為過得硬的“精品”教材,在高等教育出版社的大力支持下,著者決定認(rèn)真修改后出此新版。?
內(nèi)容概要
本書以數(shù)據(jù)結(jié)構(gòu)為主線,算法為輔線組織教學(xué)內(nèi)容。全書共分10章:緒論、線性表、字符串、棧與隊列、二叉樹與樹、集合與字典、高級字典結(jié)構(gòu)、排序、圖和算法分析與設(shè)計。本書體系完整,概念清楚,內(nèi)容充實,取材適當(dāng)。第一版在2004年被評為“北京市高等教育精品教材”。 這次再版,采用“數(shù)據(jù)結(jié)構(gòu)作為抽象數(shù)據(jù)類型的物理實現(xiàn)”觀點,在內(nèi)容和形式上都進(jìn)行了許多改進(jìn)和擴(kuò)充。提高了抽象數(shù)據(jù)類型在教學(xué)中的地位和作用;更加突出了重點,提高了全書的可讀性,還補(bǔ)充了習(xí)題,增加了索引。 由于在編寫中注意到知識模塊的獨立性和相關(guān)性,不同專業(yè)和不同水平的學(xué)生可以根據(jù)需要組合使用。本書既可以作為信息與計算機(jī)專業(yè)大學(xué)本科的“數(shù)據(jù)結(jié)構(gòu)”教材,也可以作為一般理工科專業(yè)本科和計算機(jī)專業(yè)專科學(xué)生學(xué)習(xí)相關(guān)課程的教材或教學(xué)參考書。
書籍目錄
1 緒論 1.1 從問題到程序 1.1.1 問題分析與抽象 1.1.2 程序的設(shè)計與實現(xiàn) 1.2 抽象數(shù)據(jù)類型 1.2.1 什么是抽象數(shù)據(jù)類型 1.2.2 意義與作用 1.2.3 舉例 1.3 數(shù)據(jù)結(jié)構(gòu) 1.3.1 什么是數(shù)據(jù)結(jié)構(gòu) 1.3.2 數(shù)據(jù)結(jié)構(gòu)的分類 1.3.3 結(jié)點與結(jié)構(gòu) 1.3.4 外存數(shù)據(jù)的組織 1.4 算法 1.4.1 什么是算法 1.4.2 算法的設(shè)計 1.4.3 算法的精化 1.4.4 算法的分析 小結(jié) 習(xí)題2 線性表 2.1 基本概念與抽象數(shù)據(jù)類型 2.1.1 基本概念 2.1.2 抽象數(shù)據(jù)類型 2.2 順序表示 2.2.1 存儲結(jié)構(gòu) 2.2.2 運算的實現(xiàn) 2.2.3 分析與評價 2.2.4 順序表空間的擴(kuò)展 2.3 鏈接表示 2.3.1 單鏈表表示 2.3.2 單鏈表上運算的實現(xiàn) 2.3.3 分析與比較 2.3.4 單鏈表的改進(jìn)和擴(kuò)充 2.4 應(yīng)用舉例 2.4.1 Josephus問題 2.4.2 采用順序表模擬 2.4.3 采用循環(huán)鏈表模擬 2.5 矩陣 2.5.1 矩陣的順序表示 2.5.2 稀疏矩陣的表示方法 2.6 廣義表與動態(tài)存儲管理 2.6.1 廣義表 2.6.2 結(jié)點的動態(tài)分配與回收 2.6.3 廢料收集與存儲壓縮 小結(jié) 習(xí)題3 字符串 3.1 字符串及其抽象數(shù)據(jù)類型 3.1.1 基本概念 3.1.2 抽象數(shù)據(jù)類型 3.2 字符串的實現(xiàn) 3.2.1 順序表示 3.2.2 鏈接表示 3.3 模式匹配 3.3.1 樸素的模式匹配 3.3.2 無回溯的模式匹配 小結(jié) 習(xí)題4 線與隊列5 二叉樹與樹6 集合與字典7 高級字典結(jié)構(gòu)8 排序9 圖10 算法分析與設(shè)計參考文獻(xiàn)索引算法清單后記
編輯推薦
《算法與數(shù)據(jù)結(jié)構(gòu):C語言描述(第2版)》以數(shù)據(jù)結(jié)構(gòu)為主線,算法為輔線組織教學(xué)內(nèi)容。全書共分10章:緒論、線性表、字符串、棧與隊列、二叉樹與樹、集合與字典、高級字典結(jié)構(gòu)、排序、圖和算法分析與設(shè)計。《算法與數(shù)據(jù)結(jié)構(gòu):C語言描述(第2版)》體系完整,概念清楚,內(nèi)容充實,取材適當(dāng)。第一版在2004年被評為“北京市高等教育精品教材”。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
算法與數(shù)據(jù)結(jié)構(gòu) PDF格式下載