出版時(shí)間:2012-9 出版社:清華大學(xué)出版社 作者:肖南峰 等編著 頁(yè)數(shù):302 字?jǐn)?shù):493000
內(nèi)容概要
《算法分析與設(shè)計(jì)──數(shù)據(jù)結(jié)構(gòu)實(shí)踐》是為廣東省教育廳“數(shù)據(jù)結(jié)構(gòu)”精品課程配套的輔助教材。全書共11章,主要內(nèi)容包括緒論、線性表、棧和隊(duì)列、串、多維數(shù)組和廣義表、樹和二叉樹、圖、查找、排序以及幾種典型算法(貪婪算法、分而治之算法、動(dòng)態(tài)規(guī)劃、回溯、分支限界法)實(shí)現(xiàn)等。本書內(nèi)容翔實(shí),算法和例題非常經(jīng)典且給出了對(duì)應(yīng)的visual
c++6.0源程序。
《算法分析與設(shè)計(jì)──數(shù)據(jù)結(jié)構(gòu)實(shí)踐》既可作為計(jì)算機(jī)學(xué)科各專業(yè)學(xué)生的輔助教材,也可作為廣大工程技術(shù)人員和自學(xué)考試人員的參考書。
書籍目錄
第1章緒論
1.1相關(guān)知識(shí)
1.1.1軟件開發(fā)方法
1.1.2web程序設(shè)計(jì)
1.1.3基本概念
1.2例題解析
1.3算法的描述與實(shí)現(xiàn)
1.3.1算法的描述
1.3.2算法的實(shí)現(xiàn)
1.4實(shí)驗(yàn)環(huán)境介紹
1.4.1創(chuàng)建項(xiàng)目
1.4.2編輯源程序文件
1.4.3調(diào)試程序
習(xí)題1
第2章線性表
2.1相關(guān)知識(shí)
2.2存儲(chǔ)結(jié)構(gòu)和基本運(yùn)算
2.2.1線性表的順序存儲(chǔ)結(jié)構(gòu)
2.2.2線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
.2.3例題解析
2.4線性表實(shí)踐
習(xí)題2
第3章棧與隊(duì)列
3.1相關(guān)知識(shí)
3.2存儲(chǔ)結(jié)構(gòu)和基本運(yùn)算
3.2.1棧的順序存儲(chǔ)結(jié)構(gòu)
3.2.2棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
3.2.3隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)
3.2.4隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
3.3例題解析
3.4棧與隊(duì)列實(shí)踐
習(xí)題3
第4章串
4.1相關(guān)知識(shí)
4.2存儲(chǔ)結(jié)構(gòu)和基本運(yùn)算
4.3例題解析
4.4串實(shí)踐
習(xí)題4
第5章多維數(shù)組與廣義表
5.1相關(guān)知識(shí)
5.1.1數(shù)組
5.1.2矩陣
5.1.3廣義表
5.2存儲(chǔ)結(jié)構(gòu)和基本運(yùn)算
5.2.1數(shù)組
5.2.2特殊矩陣
5.2.3廣義表
5.3例題解析
5.4多維數(shù)組與廣義表實(shí)踐
習(xí)題5
第6章樹與二叉樹
6.1相關(guān)知識(shí)
6.1.1樹
6.1.2二叉樹
6.2存儲(chǔ)結(jié)構(gòu)和基本運(yùn)算
6.2.1樹
6.2.2二叉樹
6.3例題解析
6.4樹與二叉樹實(shí)踐
習(xí)題6
第7章圖
7.1相關(guān)知識(shí)
7.2存儲(chǔ)結(jié)構(gòu)和基本運(yùn)算
7.2.1鄰接矩陣
7.2.2鄰接表
7.2.3十字鏈表(有向圖)
7.2.4鄰接多重表(無向圖)
7.3例題解析
7.4圖實(shí)踐
習(xí)題7
第8章查找
8.1相關(guān)知識(shí)
8.2存儲(chǔ)結(jié)構(gòu)和查找方法
8.2.1靜態(tài)表的查找
8.2.2動(dòng)態(tài)樹的查找
8.2.3哈希表的查找
8.3例題解析
8.4查找實(shí)踐
習(xí)題8
第9章排序
9.1相關(guān)知識(shí)
9.2數(shù)據(jù)類型和內(nèi)部排序
9.2.1插入排序
9.2.2交換排序
9.2.3選擇排序
9.2.4歸并排序
9.2.5基數(shù)排序
9.2.6各種排序的測(cè)試結(jié)果和比較
9.3例題解析
9.4排序?qū)嵺`
習(xí)題9
第10章典型算法實(shí)現(xiàn)
10.1貪婪算法
10.2分而治之算法
10.3動(dòng)態(tài)規(guī)劃
10.4回溯
10.5分支限界法
習(xí)題10
第11章課程設(shè)計(jì)與acm大賽
11.1課程設(shè)計(jì)要求
11.2課程設(shè)計(jì)實(shí)踐例題
11.3acm大賽
11.3.1acm歷史
11.3.2acm簡(jiǎn)要規(guī)則
11.3.3acm題目分類
11.3.4acm例題解析
習(xí)題11
附錄aacm大賽系統(tǒng)使用說明
附錄bacm大賽例題
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 8.2.2 動(dòng)態(tài)樹的查找 動(dòng)態(tài)查找表可以使用各種樹結(jié)構(gòu)表示。樹結(jié)構(gòu)在進(jìn)行插入或刪除操作時(shí),可以方便地維護(hù)表的有序性,無須移動(dòng)大量記錄,減少了移動(dòng)記錄的時(shí)間開銷。這里介紹4種樹結(jié)構(gòu)的查找方法:二叉排序樹、平衡二叉樹、B樹和B+樹。 1.二叉排序樹 二叉排序樹(Binary Sort Tree,BST)又稱二叉查找樹,是一種常用的動(dòng)態(tài)查找表。二叉排序樹可以用遞歸的形式定義,即二叉排序樹或一顆空樹,或具有如下性質(zhì)的二叉樹: (1)若它的左子樹非空,則其左子樹所有結(jié)點(diǎn)的關(guān)鍵字均小于其根結(jié)點(diǎn)的關(guān)鍵字值。 (2)若它的右子樹非空,則其右子樹所有結(jié)點(diǎn)的關(guān)鍵字值均大于其根結(jié)點(diǎn)的關(guān)鍵字值。 (3)它的左、右子樹都是二叉排序樹。 從定義可知,按中序遍歷二叉排序樹會(huì)得到一個(gè)按關(guān)鍵字值遞增排序的序列。 BST的查找與折半查找類似,算法思想是,當(dāng)BST二叉排序樹非空時(shí),先將給定值和根結(jié)點(diǎn)的關(guān)鍵字進(jìn)行比較,若相等,則查找成功;若小于根結(jié)點(diǎn)的關(guān)鍵字值,則查找根結(jié)點(diǎn)的左子樹;若大于根結(jié)點(diǎn)的關(guān)鍵字值,則查找根結(jié)點(diǎn)的右子樹。 BST的插入算法思想是,根據(jù)BST的特點(diǎn),新插入的結(jié)點(diǎn)作為葉子結(jié)點(diǎn),并且在查找不成功時(shí)查找路徑上訪問的最后一個(gè)結(jié)點(diǎn)的左孩子或右孩子。 BST的刪除算法思想是,在BST中刪除任意一個(gè)結(jié)點(diǎn)時(shí),都必須保證刪除后的二叉樹仍然是二叉排序樹。分以下幾種情況,假設(shè)被刪除結(jié)點(diǎn)為P,其雙親結(jié)點(diǎn)為f。 (1)如果p為葉子結(jié)點(diǎn),則直接刪除該結(jié)點(diǎn);如果P為根結(jié)點(diǎn),則刪除后二叉排序樹變?yōu)榭諛洹?(2)如果P只有左子樹或只有右子樹,可直接將p的左子樹或右子樹代替p,變?yōu)閒的子樹。 (3)如果p既有左子樹又有右子樹,根據(jù)二叉排序樹的特點(diǎn),可用p的中序下的前驅(qū)結(jié)點(diǎn)的值(或其中序下的后繼結(jié)點(diǎn)的值)代替P的值,同時(shí)刪除其中序下的前驅(qū)結(jié)點(diǎn)(或其中序下的后繼結(jié)點(diǎn)),而P的中序前驅(qū)無右子樹(或P的中序后繼無左子樹),則轉(zhuǎn)為(2)。另外,還可直接將P的右子樹代替P,同時(shí)將P的左子樹變?yōu)镻右子樹中序第一個(gè)結(jié)點(diǎn)的左孩子,也可直接將P的左子樹代替P,同時(shí)將P的右子樹變?yōu)镻左子樹中序最后一個(gè)結(jié)點(diǎn)的右孩子。
編輯推薦
《21世紀(jì)高等學(xué)校規(guī)劃教材?計(jì)算機(jī)科學(xué)與技術(shù):算法分析與設(shè)計(jì):數(shù)據(jù)結(jié)構(gòu)實(shí)踐》既可作為計(jì)算機(jī)學(xué)科各專業(yè)學(xué)生的輔助教材,也可作為廣大工程技術(shù)人員和自學(xué)考試人員的參考書。
圖書封面
評(píng)論、評(píng)分、閱讀與下載