出版時(shí)間:2009-6 出版社:國(guó)防工業(yè)出版社 作者:周海英,馬巧梅,靳雁霞 頁數(shù):322
前言
數(shù)據(jù)結(jié)構(gòu)課程作為國(guó)內(nèi)計(jì)算機(jī)及信息管理等相關(guān)專業(yè)的重要專業(yè)基礎(chǔ)課已有二十多年的教學(xué)實(shí)踐了。該門課程對(duì)于其他計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)會(huì)打下重要的知識(shí)基礎(chǔ),已成為計(jì)算機(jī)類本??茖W(xué)生的核心課程。從國(guó)內(nèi)外的教學(xué)情況可以看出,數(shù)據(jù)結(jié)構(gòu)課程的基本內(nèi)容體系已漸趨成熟,其中的一些內(nèi)容吸收了離散數(shù)學(xué)中的部分理論,對(duì)計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)和軟件開發(fā)提供了重要的理論和方法基礎(chǔ)。本書的編寫是根據(jù)國(guó)內(nèi)該課程的教學(xué)情況,結(jié)合研究生入學(xué)考試中數(shù)據(jù)結(jié)構(gòu)的重要知識(shí)點(diǎn),參考了大量的相關(guān)書籍后編寫完成,可以作為本科、??茢?shù)據(jù)結(jié)構(gòu)課程的教材和參考書,也可作為參加研究生考試的學(xué)生的輔導(dǎo)教材。本書在編寫中以理論和實(shí)踐相結(jié)合,根據(jù)作者多年的教學(xué)實(shí)踐總結(jié)出的經(jīng)驗(yàn)在講解數(shù)據(jù)結(jié)構(gòu)算法和一般理論的基礎(chǔ)上,給出了大量的典型例題和習(xí)題,便于學(xué)生在掌握理論方法的同時(shí)就能熟練把握課程重要的知識(shí)點(diǎn)和方法,并通過對(duì)例題的消化理解以及習(xí)題練習(xí)迅速掌握重要的解題方法和算法設(shè)計(jì)技巧,為提高學(xué)習(xí)的效率和效果提供良好的幫助。本書在第1章到第4章中主要介紹了數(shù)據(jù)結(jié)構(gòu)的基本概念,線性表以及棧和隊(duì)列等線性結(jié)構(gòu)的基本知識(shí),這些內(nèi)容是數(shù)據(jù)結(jié)構(gòu)的重要基礎(chǔ),在內(nèi)容上涉及大量的概念和算法,本書在編寫時(shí)給出了大量的例題,其中一些就是定義和基本概念方面的問答題,通過這些內(nèi)容使讀者了解數(shù)據(jù)結(jié)構(gòu)研究的基本內(nèi)容和重要方法,為后面章節(jié)的學(xué)習(xí)打好基礎(chǔ)。第5章介紹了遞歸,本章內(nèi)容主要與算法分析與設(shè)計(jì)課程有聯(lián)系,在講授時(shí)可以根據(jù)教學(xué)要求進(jìn)行選擇。第6章介紹了數(shù)組、特殊矩陣和廣義表方面的內(nèi)容,這章的內(nèi)容與前面章節(jié)的內(nèi)容有關(guān)聯(lián),但內(nèi)容的邏輯性上又有一定的獨(dú)立性。第7章到第8章主要介紹樹和圖兩種常用的非線性結(jié)構(gòu),它們是數(shù)據(jù)結(jié)構(gòu)中的重點(diǎn)內(nèi)容之一,對(duì)解決實(shí)際問題提供了重要的方法論基礎(chǔ),本書安排了大量篇幅給予講解。第9章和第10章的排序和查找是實(shí)際應(yīng)用中最常見的問題,對(duì)于算法設(shè)計(jì)和編程有重要的幫助,也是數(shù)據(jù)結(jié)構(gòu)中的另一個(gè)重點(diǎn)內(nèi)容之一。第11章介紹文件,這章的內(nèi)容可以根據(jù)課時(shí)情況作為選講內(nèi)容。
內(nèi)容概要
本書主要介紹了數(shù)據(jù)結(jié)構(gòu)的基本概念和基本算法。全書共分11章。前6章主要介紹了線性表、棧和隊(duì)列、串、遞歸、數(shù)組特殊矩陣和廣義表,后5章主要介紹了樹、圖、奎找、排序和文件。 本書內(nèi)容詳實(shí),基本原理與算法實(shí)現(xiàn)相互結(jié)合并配套了大量典型例題,便于初學(xué)者掌握重要的概念、原理和算法設(shè)計(jì)方法,也方便了讀者復(fù)習(xí)該課程的重要知識(shí)點(diǎn)。 本書可作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)本科生數(shù)據(jù)結(jié)構(gòu)課程的教材,也可作為計(jì)算機(jī)工程技術(shù)人員學(xué)習(xí)的參考書。
書籍目錄
第1章 緒論 1.1 什么是數(shù)據(jù)結(jié)構(gòu) 1.2 基本概念和術(shù)語 1.3 數(shù)據(jù)結(jié)構(gòu)的發(fā)展及其重要地位 1.4 算法的描述和算法分析 1.4.1 算法的描述 1.4.2 算法設(shè)計(jì)的要求 1.4.3 算法效率的度量 1.4.4 算法的存儲(chǔ)空間需求 1.5 典型例題 習(xí)題1第2章 線性表 2.1 線性表的邏輯結(jié)構(gòu) 2.1.1 線性表的定義 2.1.2 線性表的基本操作 2.2 線性表的順序存儲(chǔ)及運(yùn)算實(shí)現(xiàn) 2.2.1 順序表 2.2.2 順序表上基本運(yùn)算的實(shí)現(xiàn) 2.2.3 順序表應(yīng)用舉例 2.3 線性表的鏈?zhǔn)酱鎯?chǔ)和運(yùn)算實(shí)現(xiàn) 2.3.1 單鏈表 2.3.2 單鏈表上基本運(yùn)算的實(shí)現(xiàn) 2.3.3 循環(huán)鏈表 2.3.4 雙向鏈表 2.3.5 靜態(tài)鏈表 2.3.6 單鏈表應(yīng)用舉例 2.4 順序表和鏈表的比較 2.5 典型例題 習(xí)題2第3章 棧和隊(duì)列 3.1 棧 3.1.1 棧的定義及基本運(yùn)算 3.1.2 棧的存儲(chǔ)實(shí)現(xiàn)和運(yùn)算實(shí)現(xiàn) 3.2 棧的應(yīng)用舉例 3.3 隊(duì)列 3.3.1 隊(duì)列的定義及基本運(yùn)算 3.3.2 隊(duì)列的存儲(chǔ)實(shí)現(xiàn)及運(yùn)算實(shí)現(xiàn) 3.4 隊(duì)列應(yīng)用舉例 3.5 典型例題 習(xí)題3第4章 串 4.1 串的概念和基本運(yùn)算 4.1.1 串的基本概念 4.1.2 串的基本運(yùn)算 4.2 串的存儲(chǔ)結(jié)構(gòu) 4.2.1 串的靜態(tài)存儲(chǔ)結(jié)構(gòu) 4.2.2 串的動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu) 4.3 字符串的模式匹配 4.3.1 Brute-Force算法 4.3.2 KMP算法 4.4 串應(yīng)用——文本編輯軟件 4.5 典型例題 習(xí)題4第5章 遞歸 5.1 遞歸的概念 5.2 用C語言實(shí)現(xiàn)遞歸 ……第6章 數(shù)組、特殊矩陣和廣義表第7章 樹形結(jié)構(gòu)第8章 圖第9章 查找第10章 排序第11章 文件參考文獻(xiàn)
章節(jié)摘錄
插圖:第1章緒論自從第一臺(tái)電子計(jì)算機(jī)問世以來,計(jì)算機(jī)科學(xué)得到了飛速的發(fā)展,與此同時(shí),計(jì)算機(jī)的應(yīng)用領(lǐng)域也從最初的科學(xué)計(jì)算逐步發(fā)展到更高級(jí)的階段,如圖像處理、語音識(shí)別、機(jī)器翻譯、人工智能等多個(gè)領(lǐng)域?,F(xiàn)在計(jì)算機(jī)處理的對(duì)象不僅是簡(jiǎn)單的數(shù)值或字符,而且?guī)в胁煌Y(jié)構(gòu)的各種數(shù)據(jù)。因此,要設(shè)計(jì)一個(gè)好的軟件,除了要掌握一定的計(jì)算機(jī)程序設(shè)計(jì)語言之外,還必須研究各類數(shù)據(jù)的特性以及數(shù)據(jù)之間存在的關(guān)系。這是因?yàn)橛?jì)算機(jī)要加工處理數(shù)據(jù),必須能夠?qū)?shù)據(jù)輸入到計(jì)算機(jī)中,并能夠以恰當(dāng)?shù)姆绞皆谟?jì)算機(jī)中表示并存儲(chǔ)起來,還要便于根據(jù)需要對(duì)數(shù)據(jù)進(jìn)行加工和處理,因而當(dāng)各種數(shù)據(jù)輸入計(jì)算機(jī)之前,必須先按某種數(shù)據(jù)的組織.形式將數(shù)據(jù)組織好,然后考慮以什么樣的方式進(jìn)行存儲(chǔ),這種組織形式和存儲(chǔ)方式直接關(guān)系到程序?qū)?shù)據(jù)的處理能力和處理效率,并影響到問題的解決。綜上所述,可以這樣理解,計(jì)算機(jī)在解決一個(gè)問題時(shí),先將問題中的有關(guān)對(duì)象抽取出來形成數(shù)據(jù),并將這些數(shù)據(jù)組織在一起。為了要合理組織這些數(shù)據(jù),就要先找到各個(gè)數(shù)據(jù)之間的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu),從而選擇一種合理的組織方式。其次,還要考慮計(jì)算機(jī)如何存儲(chǔ)這些組織好的數(shù)據(jù),即數(shù)據(jù)的物理結(jié)構(gòu)或存儲(chǔ)結(jié)構(gòu)。因此,數(shù)據(jù)結(jié)構(gòu)這門課程就是要解決兩個(gè)主要的問題:數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。1.1什么是數(shù)據(jù)結(jié)構(gòu)一般來說,當(dāng)用計(jì)算機(jī)解決一個(gè)具體問題時(shí),大致都需要經(jīng)過下面幾個(gè)步驟:首先要從具體問題中抽象出一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型(或數(shù)學(xué)公式),然后設(shè)計(jì)一個(gè)描述此數(shù)學(xué)模型的算法,最后利用合適的程序設(shè)計(jì)語言來編寫程序,進(jìn)行測(cè)試、調(diào)整,直至最終得到滿意的解答。抽象數(shù)學(xué)模型的過程實(shí)質(zhì)上是分析問題,從中提取操作的對(duì)象并找出這些操作對(duì)象之間含有的關(guān)系,然后用數(shù)學(xué)的語言加以描述的過程。事實(shí)上,有些問題的求解過程可以通過一定的方程進(jìn)行一定的運(yùn)算來獲取。例如,求解梁架結(jié)構(gòu)中應(yīng)力的數(shù)學(xué)模型為線性方程組;預(yù)報(bào)人口增長(zhǎng)情況的數(shù)學(xué)模型為微分方程。然而,更多的非數(shù)值計(jì)算問題卻無法用數(shù)學(xué)方程加以描述。
編輯推薦
《數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)(第2版)》特色:選配了大量的典型例題和經(jīng)典習(xí)題;精選的部分習(xí)題為近年來考研“高頻題”;突出算法設(shè)計(jì)與概念方法相互配合講解的技巧?!稊?shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)(第2版)》配套的編程練習(xí)庫(kù)CodeLab,在線即時(shí)反饋。本編程練習(xí)庫(kù)與北美136所大學(xué)同步。有興趣的讀者可以與jtwang@ndip.cn聯(lián)系。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì) PDF格式下載