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