算法與數據結構(第2版)

算法與數據結構(第2版)

《算法與數據結構(第2版)》是2014年清華大學出版社出版的圖書。

圖書簡介

本書是針對套用型本科教學特點和需求編寫的課程教材之一,它覆蓋了《中國計算機科學與技術學科教程2002》中關於核心課程“算法與數據結構”的所有知識單元和課程提綱,系統介紹了各種常用數據結構的有關知識和各種基本的檢索排序算法。每章配有足量的例題、習題和上機實驗題,並有由本社出版與之配套使用的《算法與數據結構習題精解和實驗指導》和電子教案,便於教師組織教學和學生自學。

全書以知識單元為基本構件,便於分解和重組,可以滿足不同院校計算機科學與技術學科各專業的教學需求,也可作為從事計算機科學與技術工作的科技人員的參考用書。

目錄

第1章算法與程式1

1.1算法的基本概念1

1.1.1什麼是算法1

1.1.2算法的基本特性2

1.2算法的表示3

1.2.1自然語言表示3

1.2.2流程圖表示3

1.2.3N-S圖表示4

1.2.4偽代碼表示4

1.2.5程式語言表示5

1.3算法的設計與評價6

1.3.1評價算法的標準6

1.3.2算法的環路複雜度7

1.3.3算法的時空效率8

1.3.4常見的算法設計方法11

1.4算法與程式14

1.4.1程式的基本概念14

1.4.2問題求解與實現策略14

1.4.3程式調試與查錯策略16

1.4.4程式設計方法概述17

習題121

第2章常用數據結構23

2.1數據類型與數據結構23

2.1.1數據、數據元素與數據類型23

2.1.2數據結構的基本概念25

2.1.3抽象數據類型27◆算法與數據結構(第2版)目錄2.2數組29

2.2.1數組及其運算29

2.2.2數組的順序存儲結構30

2.2.3特殊矩陣的壓縮存儲31

2.3串34

2.3.1串的基本概念34

2.3.2串的定長順序存儲及運算實現35

2.3.3模式匹配38

2.3.4串的堆式動態存儲及運算實現43

2.3.5漢字串46

習題249

上機實驗題51

第3章簡單數據結構52

3.1順序表52

3.1.1線性表的基本概念52

3.1.2線性表的順序存儲結構--順序表53

3.1.3順序表上的基本運算54

3.2鍊表58

3.2.1線性表的鏈式存儲結構--鍊表58

3.2.2單鍊表上的基本運算60

3.2.3循環鍊表和雙向鍊表65

3.2.4線性表套用舉例--一元多項式相加問題67

3.3棧69

3.3.1棧的概念及運算69

3.3.2順序棧及運算實現69

3.3.3鏈棧及運算實現72

3.3.4棧的套用舉例--遞歸的實現74

3.4佇列76

3.4.1佇列的概念及其運算76

3.4.2順序佇列及運算實現77

3.4.3鏈佇列及運算實現80

3.4.4佇列的套用舉例--I/O緩衝區管理及其他82

3.5廣義表84

3.5.1廣義表的概念84

3.5.2廣義表的存儲結構及運算實現85

3.5.3廣義表的套用--m元多項式的表示87

習題389

上機實驗題92

第4章樹與二叉樹93

4.1樹的基本概念93

4.1.1樹的定義及表示93

4.1.2樹的常用術語及運算94

4.2二叉樹96

4.2.1二叉樹的概念96

4.2.2二叉樹的性質97

4.2.3二叉樹的存儲結構98

4.2.4二叉樹的簡單運算實現101

4.3二叉樹的遍歷102

4.3.1遍歷二叉樹的遞歸算法102

4.3.2遍歷二叉樹的非遞歸算法104

4.3.3遍歷序列與二叉樹的復原108

4.3.4基於遍歷的幾種二叉樹運算的實現和套用舉例110

4.4線索二叉樹111

4.4.1線索二叉樹的概念111

4.4.2線索二叉樹的構造算法113

4.4.3線索二叉樹上的運算實現114

4.5樹和森林115

4.5.1樹和森林的存儲結構116

4.5.2樹和森林與二叉樹之間的轉換117

4.5.3樹和森林的遍歷119

4.5.4樹的套用舉例--判定樹120

4.6哈夫曼樹121

4.6.1哈夫曼樹的概念及其構造算法121

4.6.2哈夫曼樹的套用--哈夫曼編碼124

習題4125

上機實驗題128

第5章圖與網129

5.1圖與網的基本概念129

5.1.1圖與網的定義129

5.1.2圖的相關術語130

5.2圖與網的存儲結構132

5.2.1鄰接矩陣132

5.2.2鄰接表與逆鄰接表133

5.2.3鄰接多重表135

5.3圖的遍歷136

5.3.1深度優先搜尋遍歷136

5.3.2廣度優先搜尋遍歷138

5.3.3圖的遍歷套用舉例--圖的連通性與生成樹139

5.4無向連通網的最小生成樹140

5.4.1最小生成樹的概念140

5.4.2Prim算法141

5.4.3Kruskal算法143

5.5有向網的最短路徑144

5.5.1單源最短路徑144

5.5.2所有頂點對之間的最短路徑146

5.6有向無環圖及其套用148

5.6.1有向無環圖的概念148

5.6.2AOV網與拓撲排序150

5.6.3AOE網與關鍵路徑154

習題5159

上機實驗題161

第6章數據結構的程式實現162

6.1基本的實現策略162

6.1.1簡單數據結構的程式實現162

6.1.2構造型數據結構的程式實現163

6.1.3數據結構的鏈式實現163

6.1.4數據結構的數組實現163

6.2動態結構的靜態實現163

6.2.1靜態鍊表164

6.2.2二叉樹的靜態二叉鍊表表示法164

6.2.3樹和森林的雙親表示法165

6.2.4哈夫曼算法的靜態實現166

6.3大批量數據的組織策略170

6.3.1檔案的組織170

6.3.2資料庫技術177

6.4數據結構在問題建模中的套用179

6.4.1Josephus問題180

6.4.2教務管理與二分圖182

6.4.3學籍管理系統中的數據組織185

習題6190

上機實驗題191

第7章檢索及基本算法192

7.1檢索的概念192

7.2線性表的檢索194

7.2.1順序檢索194

7.2.2二分法檢索195

7.2.3黃金分割點檢索198

7.2.4精算點檢索200

7.2.5分塊檢索202

7.3樹表的檢索204

7.3.1二叉檢索樹204

7.3.2二叉檢索樹的平衡性調整211

7.3.3B樹和B+樹214

7.4哈希檢索217

7.4.1哈希檢索與哈希表217

7.4.2哈希函式的構造方法218

7.4.3地址衝突的消解策略220

7.4.4哈希表的檢索算法及性能分析222

習題7224

上機實驗題226

第8章排序及基本算法228

8.1排序的基本概念228

8.2插入排序229

8.2.1直接插入排序230

8.2.2希爾排序231

8.2.3其他插入排序簡介234

8.3交換排序237

8.3.1冒泡排序237

8.3.2快速排序238

8.4選擇排序241

8.4.1直接選擇排序241

8.4.2樹型選擇排序242

8.4.3堆排序243

8.5歸併排序247

8.5.1歸併相鄰兩個有序序列248

8.5.2二路歸併排序的遞歸算法249

8.5.3二路歸併排序的非遞歸算法249

8.6基數排序250

8.6.1多關鍵字排序250

8.6.2鏈式基數排序251

8.7各種內部排序方法的比較和選擇254

8.8外部排序簡介256

習題8258

上機實驗題260

參考文獻261

第1篇基礎知識篇

第1章網站概述31.1網站與網頁的基本概念3

1.1.1網頁3

1.1.2網頁的分類3

1.1.3網站4

1.1.4網站的分類5

1.2網站的開發流程5

1.2.1確定網站主題6

1.2.2網站整體規劃6

1.2.3收集整理網站素材9

1.2.4開發與測試網站9

1.2.5域名空間的申請與備案11

1.2.6發布網站12

1.2.7更新和維護網站12

1.2.8宣傳與推廣網站13

1.3撰寫網站策劃書13

1.3.1網站策劃書撰寫要點14

1.3.2實例:撰寫“北京奧運吉祥物--福娃”

網站策劃書16

1.4網站開發相關軟體介紹20

1.4.1網頁編輯軟體21

1.4.2圖像處理軟體22

1.4.3動畫製作軟體22

1.4.4網站發布軟體22

1.5本章小結231.6習題23

第2章網站開發環境的搭建25

2.1DreamweaverCS3簡介25

2.2DreamweaverCS3的工作界面26

2.2.1啟動DreamweaverCS326

2.2.2工作區集成視窗26

2.3站點的基本操作30

2.3.1新建站點31

2.3.2管理站點34

2.4網頁文檔的基本操作35

2.4.1創建網頁35

2.4.2編輯網頁37

2.4.3預覽網頁37

2.4.4打開和關閉網頁文檔38

2.5IIS的安裝與配置38

2.5.1IIS的簡介38

2.5.2IIS的安裝39

2.5.3IIS的簡單配置41

2.7本章小結48

2.8習題49

第3章超文本標記語言HTML50

3.1HTML概述50

3.1.1HTML的基本概念50

3.1.2HTML的基本結構51

3.1.3HTML的基本語法規則53

3.2文字與段落標記54

3.2.1標題字標記54

3.2.2文字格式標記55

3.2.3字型標記56

3.2.4段落標記和強制換行標記57

3.2.5水平線標記58

3.2.6其他標記59

3.3列表標記62

3.3.1無序列表標記62

3.3.2有序列表標記63

3.3.3自定義列表標記64

3.4表格標記65

3.5多媒體標記69

3.5.1圖像標記69

3.5.2音頻標記70

3.5.3視頻標記71

3.6超連結標記72

3.7表單標記75

3.8框架標記80

3.9本章小結83

3.10習題83

第2篇靜態設計篇

4.1.1布局主頁頭部87

4.1.2布局主頁主體89

4.1.3布局主頁底部93

4.2設計主頁94

4.2.1設定網頁屬性94

4.2.2設定表格屬性96

4.2.3插入文本和圖像97

4.2.4插入Flash動畫100

4.2.5插入JavaScript網頁特效代碼102

4.3設計其他相關網頁107

4.3.1內容顯示頁面107

4.3.2標題列表頁面108

4.3.3圖片顯示頁面108

4.3.4留言板頁面108

4.4創建超連結110

4.4.1超連結相關知識110

4.4.2超連結的創建111

4.5本章小結115

4.6習題115

5.1層疊樣式表(CSS)基礎116

5.1.1層疊樣式表(CSS)簡介116

5.1.2CSS的特點116

5.2網頁中使用CSS的方法117

5.2.1行內樣式表117

5.2.2內聯樣式表117

5.2.3外聯樣式表118

5.2.4導入樣式表118

5.3選擇器119

5.3.1選擇器的語法格式119

5.3.2標籤選擇器119

5.3.3類選擇器121

5.3.4ID選擇器123

5.4創建和管理CSS125

5.4.1認識CSS面板125

5.4.2新建CSS126

5.4.3CSS樣式表屬性126

5.4.4管理CSS132

5.5樣式表屬性133

5.5.1CSS的文字屬性133

5.5.2CSS的文本屬性135

5.5.3CSS的背景屬性135

5.6CSS+DIV進行網頁布局137

5.6.1<div>與<span>標記138

5.6.2盒子模型139

5.6.3元素的定位141

5.6.4布局流程151

5.6.5常用的布局類型153

5.7使用CSS美化“北京奧運吉祥物--福娃”網站161

5.7.1網站概述161

5.7.2布局分析161

5.7.3各模組布局設計163

5.8本章小結175

5.9習題175

第6章使用Photoshop美化“北京奧運吉祥物--福娃”網站176

6.1PhotoshopCS3基礎176

6.1.1PhotoshopCS3的工作界面176

6.1.2PhotoshopCS3的基本操作178

6.2設計網頁前的準備工作185

6.2.1確定頁面大小185

6.2.2確定網頁主色調185

6.2.3設計網頁的結構185

6.3設計美化網頁186

6.3.1Logo區設計186

6.3.2導航區設計191

6.3.3圖片新聞區設計193

6.3.4福娃動態區設計195

6.3.5Banner和公告欄區的設計197

6.3.6福娃簡介區設計198

6.3.7福娃揭秘區設計199

6.3.8精彩圖片區設計199

6.3.9名人說福娃區設計199

6.3.10投票調查區設計200

6.3.11著作權區設計200

6.4效果圖切片輸出201

6.4.1圖像格式介紹201

6.4.2創建與編輯切片203

6.4.3輸出切片205

6.5本章小結207

6.6習題207

第3篇動態設計篇

第4章動態網站技術概述2097.1靜態網站與動態網站209

7.2動態網站的工作模式212

7.3動態網站常用技術213

7.3.1ASP技術213

7.3.2ASP.NET技術214

7.3.3PHP技術214

7.3.4JSP技術215

7.4動態Web伺服器215

7.4.1IIS搭建Web伺服器216

7.4.2Apache搭建Web伺服器216

7.5本章小結223

7.6習題224

第8章ASP基礎知識225

8.1ASP的運行與開發環境225

8.2ASP的基本語法規則226

8.3VBScript編程基礎228

8.3.1VBScript的數據類型228

8.3.2VBScript的常量228

8.3.3VBScript的變數229

8.3.4VBScript的運算符與表達式230

8.3.5VBScript的控制語句231

8.3.6VBScript的子程式與函式236

8.4ASP的內置對象237

8.4.1Request對象237

8.4.2Response對象241

8.4.3Application對象242

8.4.4Session對象244

8.4.5Server對象245

8.4.6ObjectContext對象246

8.4.7Global.asa檔案246

8.5ASP的常用組件248

8.5.1AdRotator組件249

8.5.2ContentRotator組件251

8.5.3BrowserCapabilities組件252

8.5.4ContentLinking組件252

8.5.5其他組件簡介252

8.6本章小結253

8.7習題254

第9章資料庫訪問技術255

9.1資料庫基礎知識255

9.2使用Access創建資料庫256

9.2.1規劃資料庫257

9.2.2創建資料庫257

9.3資料庫的連線261

9.3.1ODBC簡介262

9.3.2使用DSN連線資料庫262

9.3.3使用自定義連線字元串連線資料庫266

9.3.4使用Connection對象連線資料庫267

9.4資料庫的訪問267

9.4.1Connection對象267

9.4.2Command對象269

9.4.3Recordset對象269

9.4.4資料庫訪問實例272

9.5本章小結282

9.6習題282

第10章“北京奧運吉祥物--福娃”網站的動態設計284

10.1投票調查子系統285

10.1.1功能說明285

10.1.2系統規劃285

10.1.3系統設計286

10.2留言板子系統289

10.2.1功能說明289

10.2.2系統規劃289

10.2.3系統設計291

10.3內容管理子系統293

10.3.1功能說明293

10.3.2系統規劃293

10.3.3系統設計296

10.4本章小結300

10.5習題301

第4篇提高篇

第11章網頁特效設計30311.1JavaScript概述303

11.1.1JavaScript的特點303

11.1.2JavaScript的功能306

11.2在網頁中使用JavaScript的方法307

11.3JavaScript的基本語法308

11.3.1常量308

11.3.2變數309

11.3.3運算符310

11.3.4表達式311

11.3.5程式控制流語句311

11.3.6函式313

11.4JavaScript的對象和事件313

11.4.1JavaScript的對象313

11.4.2JavaScript的事件314

11.5JavaScript套用實例316

11.5.1動態顯示日期和時間316

11.5.2狀態欄跑馬燈信息317

11.5.3計時器319

11.5.4獲取瀏覽器版本號320

11.5.5滾動顯示公告信息321

11.6本章小結322

11.7習題322

第12章Web新技術展望324

12.1XML技術324

12.1.1XML技術簡介324

12.1.2XML文檔的結構326

12.1.3XML語法基礎327

12.1.4XML元素和屬性的定義330

12.1.5XML的使用前景331

12.2Web2.0與AJAX技術331

12.2.1Web2.0技術簡介331

12.2.2Web2.0技術特性332

12.2.3AJAX技術簡介332

12.2.4AJAX技術特性333

12.3HTML5技術334

12.3.1HTML5簡介335

12.3.2HTML5的新特性335

12.3.3HTML5套用實例335

12.4本章小結341

12.5習題342

附錄A習題參考答案343

A.1第1章343

A.2第2章343

A.3第3章344

A.4第4章347

A.5第5章347

A.6第6章347

A.7第7章348

A.8第8章350

A.9第9章352

A.10第10章352

A.11第11章352

A.12第12章358

參考文獻360

相關詞條

熱門詞條

聯絡我們