《數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用》遵循青少年信息學(xué)奧林匹克競(jìng)賽大綱的要求,深入淺出地介紹了數(shù)據(jù)結(jié)構(gòu)的基本知識(shí)、數(shù)據(jù)結(jié)構(gòu)在程序設(shè)計(jì)中的作用以及數(shù)據(jù)結(jié)構(gòu)與算法之間的關(guān)系。本教材將數(shù)據(jù)結(jié)構(gòu)知識(shí)與算法設(shè)計(jì)有機(jī)結(jié)合,使讀者了解數(shù)據(jù)結(jié)構(gòu)在算法設(shè)計(jì)中的作用。
第1章 概述
1.1 相關(guān)概念
1.1.1 數(shù)據(jù)
1.1.2 數(shù)據(jù)元素
1.1.3 數(shù)據(jù)類(lèi)型
1.1.4 數(shù)據(jù)結(jié)構(gòu)
1.2 算法
1.2.1 算法概念及算法特性
1.2.2 算法的描述
1.2.3 算法的評(píng)價(jià)
1.3 數(shù)據(jù)結(jié)構(gòu)與算法
習(xí)題1
第2章 線(xiàn)性結(jié)構(gòu)及其應(yīng)用
2.1 線(xiàn)性表的概念及基本操作
2.1.1 線(xiàn)性表的概念
2.1.2 線(xiàn)性表的基本操作
2.2 線(xiàn)性表的存儲(chǔ)結(jié)構(gòu)
2.2.1 順序存儲(chǔ)結(jié)構(gòu)
2.2.2 鏈接存儲(chǔ)結(jié)構(gòu)
2.3 線(xiàn)性表基本操作的實(shí)現(xiàn)
2.3.1 順序存儲(chǔ)線(xiàn)性表基本操作的實(shí)現(xiàn)
2.3.2 單鏈表基本操作的實(shí)現(xiàn)
2.3.3 雙向鏈表基本操作的實(shí)現(xiàn)
2.3.4 循環(huán)鏈表基本操作的實(shí)現(xiàn)
2.4 線(xiàn)性表的應(yīng)用
2.5 特殊線(xiàn)性結(jié)構(gòu)——棧及其應(yīng)用
2.5.1 棧及其基本操作
2.5.2 棧的存儲(chǔ)方式
2.5.3 ;静僮鞯膶(shí)現(xiàn)
2.5.4 棧的應(yīng)用
2.6 特殊線(xiàn)性結(jié)構(gòu)——隊(duì)列及其應(yīng)用
2.6.1 隊(duì)列及其基本操作
2.6.2 隊(duì)列的存儲(chǔ)方式
2.6.3 隊(duì)列基本操作的實(shí)現(xiàn)
2.6.4 循環(huán)隊(duì)列及其基本操作的實(shí)現(xiàn)
2.6.5 隊(duì)列的應(yīng)用
習(xí)題2
第3章 線(xiàn)性結(jié)構(gòu)的深入應(yīng)用
3.1 高精度運(yùn)算
3.1.1 基本算法
3.1.2 應(yīng)用實(shí)例
3.1.3 拓展
3.2 排序
3.2.1 簡(jiǎn)單排序算法
3.2.2 算法的改進(jìn)
3.2.3 應(yīng)用實(shí)例
3.3 查找
3.3.1 順序表的查找
3.3.2 二分查找
3.3.3 索引查找
3.3.4 應(yīng)用實(shí)例
3.4 散列查找
3.4.1 散列表的概念
3.4.2 散列函數(shù)的構(gòu)造
3.4.3 處理沖突的方法
3.4.4 應(yīng)用實(shí)例
3.5 分治
3.5.1 分治算法解決問(wèn)題模式
3.5.2 應(yīng)用實(shí)例
3.6 遞推
3.6.1 遞推算法
3.6.2 常見(jiàn)遞推關(guān)系
3.6.3 應(yīng)用實(shí)例
3.7 動(dòng)態(tài)規(guī)劃初探
3.7.1 動(dòng)態(tài)規(guī)劃的定義
3.7.2 動(dòng)態(tài)規(guī)劃的基本概念
3.7.3 應(yīng)用實(shí)例
習(xí)題3
3.6.3 應(yīng)用實(shí)例
3.7 動(dòng)態(tài)規(guī)劃初探
3.7.1 動(dòng)態(tài)規(guī)劃的定義
3.7.2 動(dòng)態(tài)規(guī)劃的基本概念
3.7.3 應(yīng)用實(shí)例
習(xí)題3
第4章 層次結(jié)構(gòu)(樹(shù))及其應(yīng)用
4.1 從線(xiàn)性結(jié)構(gòu)到層次結(jié)構(gòu)——廣義表及其操作
4.1.1 廣義表概念及存儲(chǔ)結(jié)構(gòu)
4.1.2 廣義表的建立與輸出
4.1.3 廣義袁的應(yīng)用
4.2 樹(shù)的基本概念
4.2.1 樹(shù)的定義
4.2.2 樹(shù)的表示方法
4.2.3 樹(shù)的基本術(shù)語(yǔ)
4.3 二叉樹(shù)的基本知識(shí)
4.3.1 二叉樹(shù)基本概念
4.3.2 二叉樹(shù)的性質(zhì)
4.3.3 二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)
4.3.4 二叉樹(shù)的建立算法
4.3.5 二叉樹(shù)的基本運(yùn)算
4.4 二叉樹(shù)的應(yīng)用
4.5 特殊二叉樹(shù)及其應(yīng)用
4.5.1 二叉排序樹(shù)
4.5.2 哈夫曼樹(shù)
4.5.3 哈夫曼編碼
4.6 層次結(jié)構(gòu)的綜合應(yīng)用
習(xí)題4
第5章 網(wǎng)狀結(jié)構(gòu)(圖)及其應(yīng)用
5.1 網(wǎng)狀結(jié)構(gòu)(圖)的基本知識(shí)
5.1.1 圖的基本概念
5.1.2 圖的連通性
5.2 圖的存儲(chǔ)結(jié)構(gòu)
5.2.1 鄰接矩陣
5.2.2 鄰接表
5.2.3 邊集數(shù)組
5.2.4 鄰接壓縮表
5.2.5 幾種存儲(chǔ)結(jié)構(gòu)比較
5.3 圖的遍歷
5.3.1 圖的深度優(yōu)先遍歷
5.3.2 圖的廣度優(yōu)先遍歷
5.3.3 應(yīng)用實(shí)例
5.4 圖的應(yīng)用
5.4.1 求圖的某個(gè)通路
5.4.2 求圖的最小生成樹(shù)
5.4.3 求圖的最短路徑
5.4.4 圖的拓?fù)渑判蚣瓣P(guān)鍵路徑
習(xí)題5
第6章 數(shù)據(jù)結(jié)構(gòu)深入應(yīng)用
6.1 概述
6.2 從數(shù)據(jù)結(jié)構(gòu)與算法的關(guān)系優(yōu)化算法
6.2.1 數(shù)學(xué)建模與算法優(yōu)化
6.2.2 時(shí)空優(yōu)化與搜索算法
6.3 數(shù)據(jù)結(jié)構(gòu)與動(dòng)態(tài)規(guī)劃
6.3.1 線(xiàn)性結(jié)構(gòu)與動(dòng)態(tài)規(guī)劃
6.3.2 樹(shù)型結(jié)構(gòu)與動(dòng)態(tài)規(guī)劃
6.4 綜合應(yīng)用舉例
6.5 總結(jié)
習(xí)題6
參考文獻(xiàn)
第1章 概述
【本章學(xué)習(xí)要點(diǎn)】
(1)了解數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、算法等基本概念的含義。
。2)掌握數(shù)據(jù)邏輯結(jié)構(gòu)的三種常用類(lèi)型及表示方法,掌握數(shù)據(jù)物理結(jié)構(gòu)的常用類(lèi)型及含義。
。3)掌握算法的基本特點(diǎn)及算法的描述方法,并具備基本的算法評(píng)價(jià)能力。
伴隨著計(jì)算機(jī)的發(fā)展,計(jì)算機(jī)的應(yīng)用領(lǐng)域從最初的科學(xué)計(jì)算逐步發(fā)展到人類(lèi)活動(dòng)的各個(gè)領(lǐng)域。現(xiàn)在計(jì)算機(jī)處理的對(duì)象不僅是簡(jiǎn)單的數(shù)值或字符,還有不同結(jié)構(gòu)的各種數(shù)據(jù)。因此,要設(shè)計(jì)一個(gè)比較好的程序,通過(guò)計(jì)算機(jī)工具處理問(wèn)題,除了掌握計(jì)算機(jī)語(yǔ)言外,還需要研究各種數(shù)據(jù)的特性和數(shù)據(jù)之間存在的關(guān)系,建立方便有效的數(shù)據(jù)結(jié)構(gòu),合理組織好用于處理的數(shù)據(jù)對(duì)象。針對(duì)同一個(gè)問(wèn)題的求解,若采用的數(shù)據(jù)結(jié)構(gòu)不同,則建立在其之上的處理問(wèn)題的算法也不完全相同,處理問(wèn)題的效率也大相徑庭。著名計(jì)算機(jī)科學(xué)家N-Wirth指出:算法+數(shù)據(jù)結(jié)構(gòu)一程序。可見(jiàn),數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)問(wèn)題處理中具有重要地位,認(rèn)識(shí)和理解各種數(shù)據(jù)結(jié)構(gòu)成為計(jì)算機(jī)程序設(shè)計(jì)的基礎(chǔ)。
1.1 相關(guān)概念
1.1.1 數(shù)據(jù)
數(shù)據(jù)(data)是對(duì)客觀事物的符號(hào)表示。在計(jì)算機(jī)領(lǐng)域,數(shù)據(jù)是指所有能輸入到計(jì)算機(jī)中,并能被計(jì)算機(jī)存儲(chǔ)、處理和輸出的一切信息,如文字、圖形、圖像、聲音和視頻等。