出版時(shí)間:2000-6 出版社:水利水電出版社 作者:李根強(qiáng) 編 頁(yè)數(shù):257
前言
“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)專(zhuān)業(yè)及相關(guān)專(zhuān)業(yè)的一門(mén)重要專(zhuān)業(yè)基礎(chǔ)課,也是一門(mén)必修的核心課程,并且已成為其他理工專(zhuān)業(yè)的熱門(mén)選修課?! ≡谟?jì)算機(jī)科學(xué)的各領(lǐng)域中,都要使用到各種不同的數(shù)據(jù)結(jié)構(gòu),如編譯系統(tǒng)中要使用棧、散列表、語(yǔ)法樹(shù)等;操作系統(tǒng)中要使用隊(duì)列、存儲(chǔ)管理表、目錄樹(shù)等;數(shù)據(jù)庫(kù)系統(tǒng)中要使用線性表、鏈表、索引樹(shù)等;人工智能中要使用廣義表、檢索樹(shù)、有向圖等;同樣在面向?qū)ο蟮某绦蛟O(shè)計(jì)、計(jì)算機(jī)圖形學(xué)、軟件工程、多媒體技術(shù)、計(jì)算機(jī)輔助設(shè)計(jì)等領(lǐng)域,都會(huì)用到各種不同的數(shù)據(jù)結(jié)構(gòu)。因此,學(xué)好數(shù)據(jù)結(jié)構(gòu),對(duì)從事計(jì)算機(jī)技術(shù)及相關(guān)領(lǐng)域工作的人員來(lái)說(shuō),是非常重要的,它可以使你掌握各種常用的數(shù)據(jù)結(jié)構(gòu)及其算法實(shí)現(xiàn),以及每一種算法的時(shí)間復(fù)雜度分析和空間復(fù)雜度分析,知道在什么情況下使用什么樣的數(shù)據(jù)結(jié)構(gòu)最方便,為以后研究和開(kāi)發(fā)大型程序打下基礎(chǔ)。 數(shù)據(jù)結(jié)構(gòu)的主要任務(wù)是:討論現(xiàn)實(shí)世界中的各種數(shù)據(jù)(數(shù)字、字符、字符串、聲音、圖形、圖像等)的邏輯結(jié)構(gòu)、在計(jì)算機(jī)中的各種存儲(chǔ)結(jié)構(gòu)(存儲(chǔ)表示)以及對(duì)各種非數(shù)值運(yùn)算的算法實(shí)現(xiàn);分析各種不同算法的好壞及其在什么地方應(yīng)用比較合適。通過(guò)數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí),使學(xué)生具備用所學(xué)的數(shù)據(jù)結(jié)構(gòu)來(lái)解決實(shí)際問(wèn)題及評(píng)價(jià)算法優(yōu)劣的能力,為以后學(xué)習(xí)后續(xù)計(jì)算機(jī)專(zhuān)業(yè)課程及走上工作崗位從事計(jì)算機(jī)大型軟件開(kāi)發(fā)鋪路?! ”緯?shū)是在延續(xù)2005年第一版編寫(xiě)風(fēng)格的基礎(chǔ)上,根據(jù)作者多年教學(xué)與研發(fā)經(jīng)驗(yàn),并考慮到讀者使用后的反饋信息,對(duì)各章節(jié)內(nèi)容、結(jié)構(gòu)等進(jìn)行了適當(dāng)修訂、調(diào)整、完善和補(bǔ)充,增加了相應(yīng)的功能,涵蓋了碩士研究生數(shù)據(jù)結(jié)構(gòu)考試大綱所規(guī)定的考試內(nèi)容?! ∪珪?shū)內(nèi)容共分11章,第1章介紹數(shù)據(jù)結(jié)構(gòu)與算法等一些基本術(shù)語(yǔ),并對(duì)算法描述及算法分析作了簡(jiǎn)單說(shuō)明,介紹衡量算法優(yōu)劣的主要因素:時(shí)間復(fù)雜度和空間復(fù)雜度的求法;第2章到第4章,介紹線性結(jié)構(gòu)(線性表、棧、隊(duì)列、串)的邏輯特征、一些常用算法的實(shí)現(xiàn)及基本應(yīng)用;第5章到第7章,介紹非線性結(jié)構(gòu)(多維數(shù)組、廣義表、樹(shù)、二叉樹(shù)、圖)的邏輯特征、在計(jì)算機(jī)中的存儲(chǔ)表示及一些常用算法的實(shí)現(xiàn)及基本應(yīng)用;第8章到第10章,介紹在計(jì)算機(jī)中使用非常廣泛的兩種運(yùn)算:查找和排序,排序又可以分為內(nèi)排序和外排序。對(duì)一些常用的查找、排序方法進(jìn)行了詳細(xì)說(shuō)明,并給出了實(shí)現(xiàn)的算法及時(shí)間復(fù)雜度和空間復(fù)雜度分析;第11章介紹外存的文件的幾種存儲(chǔ)形式及組織方式。各章內(nèi)容有相對(duì)獨(dú)立的部分,可便于不同院校不同專(zhuān)業(yè)按需要組織教學(xué)。全書(shū)側(cè)重于數(shù)據(jù)結(jié)構(gòu)的應(yīng)用,力求講授內(nèi)容與具體的計(jì)算機(jī)應(yīng)用實(shí)例相結(jié)合,以便于學(xué)生加深對(duì)各章內(nèi)容的理解和掌握?! ”緯?shū)的最大特點(diǎn)是采用面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言(c++語(yǔ)言)作為算法的描述語(yǔ)言,所有算法都已經(jīng)上機(jī)調(diào)試通過(guò)。但是,由于篇幅所限,大部分算法都是以單獨(dú)的函數(shù)形式給出,若讀者要運(yùn)行這些算法,還必須給出一些變量的說(shuō)明及主函數(shù)來(lái)調(diào)用所給的函數(shù)。因此,本書(shū)中的算法描述比原來(lái)數(shù)據(jù)結(jié)構(gòu)教材中用類(lèi)Pascal語(yǔ)言或類(lèi)c語(yǔ)言描述算法更直觀,學(xué)生更容易理解和接受。作者在十幾年的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中,對(duì)數(shù)據(jù)結(jié)構(gòu)中的各種算法進(jìn)行了認(rèn)真的研究和分析,在這方面積累了豐富的經(jīng)驗(yàn),因此,本書(shū)中所選的例題和習(xí)題都具有一定的針對(duì)性,
內(nèi)容概要
本書(shū)為普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材?! ”緯?shū)從軟件開(kāi)發(fā)設(shè)計(jì)的角度出發(fā),按照面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,詳細(xì)介紹了線性表、棧和隊(duì)列、串、多維數(shù)組和廣義表、樹(shù)、圖等不同的數(shù)據(jù)結(jié)構(gòu),以及這些數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的存儲(chǔ)表示和不同存儲(chǔ)表示上的算法實(shí)現(xiàn)。每個(gè)算法都用C++語(yǔ)言進(jìn)行描述,并全部上機(jī)在Visual C++ 6.0環(huán)境下運(yùn)行通過(guò)。第8、9兩章,介紹了計(jì)算機(jī)中常用的兩種運(yùn)算:查找和排序,詳細(xì)介紹了不同的查找、排序運(yùn)算的實(shí)現(xiàn)及各種算法的效率分析。最后一章,介紹了文件的基本概念和文件的組織形式。本書(shū)是在2005年第1版的基礎(chǔ)上,做了一定的修改,增加了相應(yīng)的功能,涵蓋了碩士研究生數(shù)據(jù)結(jié)構(gòu)考試大綱所規(guī)定的考試內(nèi)容。 本書(shū)配套的《數(shù)據(jù)結(jié)構(gòu)(C++版)習(xí)題解答及實(shí)訓(xùn)指導(dǎo)》一書(shū)同時(shí)出版,既方便教學(xué),又便于自學(xué)?! ”緯?shū)可以作為計(jì)算機(jī)類(lèi)或信息類(lèi)相關(guān)專(zhuān)業(yè)的本科或?qū)?平滩募按T士研究生考試的參考資料,也可以作為自學(xué)數(shù)據(jù)結(jié)構(gòu)人員的參考資料,還可供從事計(jì)算機(jī)工程與應(yīng)用工作的科技人員參考。
書(shū)籍目錄
第二版前言第一版前言第1章 緒論 1.1 什么是數(shù)據(jù)結(jié)構(gòu) 1.1.1 數(shù)據(jù)結(jié)構(gòu)示例 1.1.2 基本術(shù)語(yǔ) 1.1.3 數(shù)據(jù)結(jié)構(gòu) 1.2 算法描述 1.2.1 基本概念 1.2.2 算法描述 1.3 算法分析 1.3.1 時(shí)間復(fù)雜度 1.3.2 空間復(fù)雜度 本章小結(jié) 習(xí)題1第2章 線性表 2.1 線性表的定義及其運(yùn)算 2.1.1 線性表的定義 2.1.2 線性表的運(yùn)算 2.1.3 線性表的抽象數(shù)據(jù)類(lèi)型描述 2.2 線性表的順序存儲(chǔ)結(jié)構(gòu) 2.2.1 順序表結(jié)構(gòu) 2.2.2 順序表運(yùn)算 2.2.3 順序表存儲(chǔ)空間的動(dòng)態(tài)分配 2.3 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 2.3.1 單鏈表結(jié)構(gòu) 2.3.2 單鏈表運(yùn)算 2.3.3 循環(huán)鏈表結(jié)構(gòu) 2.3.4 雙向鏈表結(jié)構(gòu) 2.4 一元多項(xiàng)式的表示及相加 2.4.1 一元多項(xiàng)式的表示 2.4.2 一元多項(xiàng)式的相加 2.5 順序表與鏈表的比較 2.6 算法應(yīng)用舉例 本章小結(jié) 習(xí)題2第3章 棧和隊(duì)列 3.1 ?! ?.1.1 棧的定義 3.1.2 棧的運(yùn)算 3.1.3 棧的抽象數(shù)據(jù)類(lèi)型描述 3.1.4 順序?! ?.1.5 鏈?! ?.1.6 棧的應(yīng)用 3.2 隊(duì)列 3.2.1 隊(duì)列的定義 3.2.2 隊(duì)列的基本運(yùn)算 3.2.3 隊(duì)列的抽象數(shù)據(jù)類(lèi)型描述 3.2.4 循環(huán)隊(duì)列 3.2.5 鏈隊(duì)列 3.2.6 隊(duì)列的應(yīng)用 本章小結(jié) 習(xí)題3第4章 串 4.1 串的定義及運(yùn)算 4.1.1 基本概念 4.1.2 串的運(yùn)算 4.1.3 串的抽象數(shù)據(jù)類(lèi)型描述 4.2 串的存儲(chǔ)結(jié)構(gòu) 4.2.1 順序存儲(chǔ) 4.2.2 鏈?zhǔn)酱鎯?chǔ) 4.2.3 索引存儲(chǔ) 4.3 串運(yùn)算的實(shí)現(xiàn) 4.3.1 串插入 4.3.2 串刪除 4.3.3 子串定位 ……第5章 多維數(shù)組和廣義表第6章 樹(shù)和二叉樹(shù)第7章 圖第8章 查找第9章 內(nèi)排序第10章 外排序第11章 文件參考文獻(xiàn)
章節(jié)摘錄
第1章 緒論 1.2 算法描述 1.2.1 基本概念 1.算法(Algorithm) 通俗地講,算法就是一種解題的方法。更嚴(yán)格地說(shuō),算法是由若干條指令組成的有窮序列,它必須滿足下述條件(也稱為算法的五大特性): (1)輸入:具有0個(gè)或多個(gè)輸入的外界量(算法開(kāi)始前的初始量)?! 。?)輸出:至少產(chǎn)生一個(gè)輸出,它們是算法執(zhí)行完后的結(jié)果。 ?。?)有窮性:每條指令的執(zhí)行次數(shù)必須是有限的?! 。?)確定性:每條指令的含義都必須明確、無(wú)二義性?! 。?)可行性:每條指令的執(zhí)行時(shí)間都是有限的。 2.算法和程序的關(guān)系 算法的含義與程序十分相似,但二者是有區(qū)別的。一個(gè)程序不一定滿足有窮性(死循環(huán)),另外,程序中的指令必須是機(jī)器可執(zhí)行的,而算法中的指令則無(wú)此限制。一個(gè)算法若用計(jì)算機(jī)語(yǔ)言來(lái)書(shū)寫(xiě),則它就可以是一個(gè)程序?! ?.2.2 算法描述 1.用流程圖描述算法 一個(gè)算法可以用流程圖的方式來(lái)描述,輸入輸出、判斷、處理分別用不同的框圖表示,用箭頭表示流程的流向。這是一種描述算法的較好方法,目前在一些高級(jí)語(yǔ)言程序設(shè)計(jì)中仍然采用。 2.用自然語(yǔ)言描述算法 用我們?nèi)粘I钪械淖匀徽Z(yǔ)言(可以是中文形式,也可以是英文形式)也可以描述算法?! ±?,某同志某天做的工作可以描述為一個(gè)算法形式,如下: 若今天我有空并且天不下雨,則我上街購(gòu)物,否則我呆在家里看書(shū)?! ?.用其他方式描述算法 還可以用數(shù)學(xué)語(yǔ)言或約定的符號(hào)語(yǔ)言來(lái)描述算法?! ?.用C++描述算法 在本教材中,將采用C++或類(lèi)C++來(lái)描述算法。
圖書(shū)封面
評(píng)論、評(píng)分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版