數(shù)據(jù)結構與算法注重理論與實踐相結合,不僅是計算機學科的核心基礎課程,也是程序設計的重要理論基礎。本書系統(tǒng)地講述了數(shù)據(jù)結構與算法的基本理論和實際應用,《數(shù)據(jù)結構與算法/計算機系列教材》分為兩個部分,共9章,第一部分主要討論數(shù)據(jù)結構的基礎知識和表示方式,包括線性結構(線性表、棧、隊列、串、數(shù)組及廣義表)、樹形結構、圖形結構等的定義、表示和實現(xiàn);第二部分討論排序和查找兩類常用算法的原理、方法及其實現(xiàn)技巧。 全書強調實用,注重理論指導下的實際可操作性,注重實際問題的解決。書中所有關于基本數(shù)據(jù)結構的定義和算法描述均采用標準的C語言格式給出,所有算法代碼均在TC 2.0、Visual C++ 6.0、Codeblocks等開發(fā)環(huán)境中調試通過并運行正確,讀者可根據(jù)各自的要求和習慣等選擇使用對應的工具。 本書可作為高等學校計算機類各專業(yè)數(shù)據(jù)結構課程的教材或參考書,特別適合應用技術型本科層次的學生使用;也可供從事計算機應用相關工作的人員參考。
隨著計算機科學技術的不斷發(fā)展和應用領域的不斷擴大,在許多非數(shù)值處理的應用問題中,計算機所面對的數(shù)據(jù)結構十分復雜、數(shù)據(jù)量巨大且形式多樣化,如何根據(jù)各類實際問題歸納、抽象出對象的數(shù)據(jù)特征及對象間的相互聯(lián)系,從而選擇合適的數(shù)據(jù)組織方法和存儲方法,設計高效的求解算法,成為計算機學科需要解決的最迫切的任務。
數(shù)據(jù)結構與算法是一門實踐性很強同時又十分抽象的計算機學科基礎課程,本書基于CDIO的理念進行編寫。CDIO是源于國外的工程教育模式,體現(xiàn)了歐美理工類學科教育改革的全新理念。通過構思(Conceive)、設計(Design)、實現(xiàn)(Implement)和運行(Operate)4個環(huán)節(jié),引導學生積極參與“做中學”和“基于項目的教育和學習”的整個過程,達到學習效果的提高和升華,真正實現(xiàn)課程教學的目的。本書將這種教學理念引入到編寫中,每種數(shù)據(jù)結構均以流行的抽象數(shù)據(jù)類型格式(ADT)對其進行定義,使用C語言函數(shù)的形式描述其對應的存儲結構及基本操作算法,以典型算法設計來實現(xiàn)其基本應用,以應用實例分析深化對基本概念的理解和培養(yǎng)分析問題與解決問題的能力。
本書強調實用性,注重理論指導下的可操作性,注重提高分析問題、解決問題的能力。各章均配有小結,目的在于引導讀者復習該章內容;各章課外習題和實驗課題由配套教材《數(shù)據(jù)結構與算法習題解析和實驗指導》提供,以期通過典型習題與實踐指導使讀者更全面、更透徹地掌握數(shù)據(jù)結構與算法這門課程。
本書第1章介紹數(shù)據(jù)結構的概念,第2~第5章介紹各種線性結構的知識,第6章介紹樹形結構,第7章介紹圖形結構,第8章介紹查找算法,第9章介紹排序算法。
參加編寫的有鄒永林(第1、第4、第7和第9章)、周蓓(第2、第6和第8章)、唐曉陽(第3和第5章),周思林、朱奭、沈健、洪蕾等參與討論和算法的設計與調試;鄒永林負責全書的統(tǒng)稿。
由于作者水平有限,書中難免存在不足之處,懇請廣大讀者批評指正。
編者
2015年5月
第1章緒論/1
1.1引言/1
1.1.1幾個實例/1
1.1.2數(shù)據(jù)結構的產生和發(fā)展/3
1.2數(shù)據(jù)結構/4
1.2.1基本概念和術語/4
1.2.2數(shù)據(jù)結構定義/5
1.2.3數(shù)據(jù)類型和抽象數(shù)據(jù)類型/7
1.3算法定義、描述和分析/10
1.3.1算法定義/10
1.3.2算法設計技術/11
1.3.3算法描述/12
1.3.4算法分析/13
1.4小結/18
習題1/18第2章基本線性結構——線性表/20
2.1概述/20
2.1.1線性表的概念/20
2.1.2線性表的類型定義/22
2.2順序表/23
2.2.1線性表的順序表示/23
2.2.2順序表的實現(xiàn)/23
2.3鏈表/28
2.3.1線性表的鏈式表示/28
2.3.2線性鏈表的實現(xiàn)/28
2.3.3循環(huán)鏈表的實現(xiàn)/33
2.3.4雙向鏈表的實現(xiàn)/34
2.3.5靜態(tài)鏈表的實現(xiàn)/35
2.4算法設計舉例/362.5小結/39
習題2/40第3章限定性線性結構——棧和隊列/41
3.1棧/41
3.1.1棧的類型定義/41
3.1.2順序棧的表示和實現(xiàn)/42
3.1.3鏈棧的表示和實現(xiàn)/45
3.2隊列/47
3.2.1隊列的類型定義/47
3.2.2順序隊列的表示和實現(xiàn)/48
3.2.3鏈隊的表示和實現(xiàn)/51
3.3算法設計舉例/53
3.4小結/59
習題3/59第4章特殊線性結構——串/61
4.1概述/61
4.1.1串的概念/61
4.1.2串的邏輯定義/62
4.2串的表示和實現(xiàn)/63
4.2.1串的順序存儲表示/63
4.2.2串的鏈式存儲表示/66
4.3模式匹配/67
4.3.1概念/67
4.3.2模式匹配的基本算法(BF算法)/67
4.3.3KMP算法/69
4.3.4Horspool算法和BoyerMoore算法/72
4.4算法設計舉例/77
4.5小結/78
習題4/79第5章擴展線性結構——數(shù)組和廣義表/80
5.1數(shù)組/80
5.1.1數(shù)組的定義/80
5.1.2數(shù)組的存儲表示/81
5.2矩陣的壓縮存儲/83
5.2.1特殊矩陣/84
5.2.2稀疏矩陣/85
5.3廣義表/89
5.3.1廣義表的定義/89
5.3.2廣義表的存儲結構/91
5.4算法設計舉例/94
5.5小結/96
習題5/96第6章樹形結構——樹和二叉樹/98
6.1樹的定義和術語/98
6.1.1樹的定義/98
6.1.2樹的基本術語/99
6.1.3樹的表示/100
6.1.4樹的遍歷/101
6.2二叉樹/101
6.2.1二叉樹的定義/101
6.2.2二叉樹的性質/102
6.2.3二叉樹的存儲結構/104
6.2.4遍歷二叉樹/106
6.2.5線索二叉樹/109
6.2.6二叉樹算法設計舉例 /113
6.3樹和森林/115
6.3.1樹的存儲結構/116
6.3.2樹、森林與二叉樹的轉換/118
6.3.3森林的遍歷/120
6.4哈夫曼樹及其應用/121
6.4.1哈夫曼樹/121
6.4.2哈夫曼編碼/122
6.4.3哈夫曼編碼的實現(xiàn)/123
6.5小結/126
習題6/126第7章圖形結構——圖/128
7.1圖的基本概念/128
7.1.1圖的定義/128
7.1.2基本術語/130
7.2圖的表示和實現(xiàn)/132
7.2.1鄰接矩陣/132
7.2.2鄰接表/134
7.2.3十字鏈表/137
7.2.4鄰接多重表/138
7.3圖的遍歷/139
7.3.1深度優(yōu)先搜索/139
7.3.2廣度優(yōu)先搜索/142
7.4圖的典型應用算法設計/144
7.4.1生成樹和最小生成樹/145
7.4.2拓撲排序/150
7.4.3關鍵路徑/153
7.4.4最短路徑/161
7.5小結/165
習題7/165第8章常用算法I——查找/167
8.1基本概念/167
8.1.1查找的定義/167
8.1.2基本術語/168
8.2線性表的查找/169
8.2.1順序查找/169
8.2.2二分查找/170
8.2.3分塊查找/173
8.3樹表查找/174
8.3.1二叉排序樹/174
8.3.2平衡二叉樹/181
8.3.3B樹/189
8.4散列查找/197
8.4.1散列表/197
8.4.2散列函數(shù)的構造方法/199
8.4.3處理沖突的方法/201
8.4.4散列表的查找及分析 /204
8.5自組織線性表/207
8.6小結/209
習題8/210第9章常用算法II——排序/211
9.1概述/211
9.2內部排序/212
9.2.1直接插入排序和希爾排序/212
9.2.2冒泡排序和快速排序/215
9.2.3簡單選擇排序和堆排序/220
9.2.4歸并排序/223
9.2.5基數(shù)排序/225
9.2.6其他內部排序方法/229
9.2.7內部排序效益評估/231
9.3外部排序/231
9.3.1外部排序方法/232
9.3.2自然歸并/233
9.3.3多路平衡歸并/234
9.3.4置換選擇排序/235
9.3.5最佳歸并樹/236
9.4小結/237
習題9/237
參考文獻/238
第1章計算機基礎知識/1
1.1計算機概述/1
1.1.1計算機發(fā)展簡史/1
1.1.2計算機的分類/3
1.1.3微機發(fā)展簡史/4
1.1.4計算機的特點/5
1.1.5計算機的發(fā)展趨勢/6
1.1.6計算機的應用領域/7
1.2計算機信息技術基礎/8
1.2.1信息和數(shù)據(jù)/8
1.2.2信息的特征/9
1.2.3計算機處理信息的過程/10
1.2.4信息高速公路/10
1.3數(shù)制轉換/11
1.3.1數(shù)字化信息編碼的概念/11
1.3.2進位計數(shù)制/11
1.3.3不同進制之間的轉換/13
1.3.4二進制數(shù)在計算機內的表示/15
1.4計算機中的信息編碼/18
1.4.1二|十進制BCD碼/18
1.4.2西文字符編碼/18
1.4.3漢字的編碼表示/20
1.4.4漢字的輸入/22
1.5計算機系統(tǒng)組成/22
1.5.1馮·諾依曼結構的計算機硬件系統(tǒng)/22
1.5.2軟件系統(tǒng)/24
1.5.3計算機的工作過程/26
1.6微型計算機的硬件組成/26
1.6.1微機的硬件組成/26
1.6.2微機的主要性能和配置/33
1.7多媒體技術/34
1.7.1多媒體技術概念/34
1.7.2多媒體計算機的組成/35
1.7.3多媒體設備和接口/35
1.7.4多媒體技術的應用/37
1.7.5常見多媒體文件格式簡介/38第2章Windows XP操作系統(tǒng)/41
2.1操作系統(tǒng)概述/41
2.1.1操作系統(tǒng)基礎知識/41
2.1.2典型的操作系統(tǒng)/43
2.2中文Windows XP基礎知識/45
2.2.1Windows XP概述/45
2.2.2Windows XP的基本概念、術語及其基本操作/48
2.3Windows XP磁盤文件管理/61
2.3.1Windows XP中文件及文件夾的瀏覽/61
2.3.2在Windows XP中文件及文件夾的管理/63
2.3.3Windows XP磁盤的管理/76
2.4Windows XP的設置/78
2.4.1控制面板的概念/78
2.4.2顯示器的設置/78
2.4.3輸入設備的設置/81
2.4.4“開始”菜單的設置/82
2.4.5設置輸入法/83
2.4.6添加硬件/84
2.4.7添加/刪除程序/85
2.4.8打印機的設置/88
2.4.9其他輔助設置 /91
2.5Windows XP附件的使用/93
2.5.1記事本的使用/93
2.5.2畫圖的使用/94
2.5.3Windows XP系統(tǒng)工具的使用/96
2.5.4計算器的使用/97
2.5.5Windows XP中的多媒體應用程序/98第3章Word 2003及應用/102
3.1啟動Word 2003/102
3.1.1使用“開始”菜單啟動Word/102
3.1.2使用桌面快捷方式啟動Word/102
3.1.3打開已有的Word文檔啟動Word/102
3.2Word 2003窗口/103
3.2.1標題欄/104
3.2.2菜單欄/104
3.2.3工具欄/105
3.2.4標尺/107
3.2.5編輯區(qū)/108
3.2.6滾動條/108
3.2.7狀態(tài)欄/108
3.2.8任務窗格/108
3.3創(chuàng)建新文檔/109
3.3.1創(chuàng)建空白文檔/110
3.3.2使用本機上的模板創(chuàng)建新文檔/110
3.4文檔內容的錄入/111
3.4.1文檔錄入基礎/112
3.4.2輸入中英文文字和符號/112
3.4.3插入對象/113
3.5保存和關閉文檔/115
3.5.1保存文檔/115
3.5.2關閉文檔/118
3.6打開文檔/118
3.6.1打開一個文檔/118
3.6.2同時打開多個文檔/120
3.7視圖方式和其他顯示方式/121
3.7.1普通視圖方式/121
3.7.2頁面視圖方式/122
3.7.3Web版式視圖方式/122
3.7.4大綱視圖方式/122
3.7.5閱讀版式視圖方式/123
3.7.6文檔結構圖/123
3.7.7全屏顯示/124
3.7.8設置顯示比例/124
3.7.9拆分窗口/125
3.7.10顯示或隱藏非打印字符/126
3.8文檔的編輯與排版/126
3.8.1文檔的基本編輯/126
3.8.2字符格式設置/131
3.8.3段落格式設置/135
3.8.4美化文檔及排版/138
3.8.5頁面設置/147
3.8.6查找與替換/148
3.8.7拼寫和語法檢查/150
3.8.8打印預覽及打印/152
3.8.9樣式和模板/154
3.9表格應用/157
3.9.1創(chuàng)建表格/157
3.9.2數(shù)據(jù)輸入與表格選擇/161
3.9.3編輯表格/162
3.9.4設置表格格式/168
3.9.5表格計算與排序/172
3.10圖形對象處理/174
3.10.1繪制的圖形/174
3.10.2插入與編輯圖片/185
3.10.3藝術字/191
3.10.4文本框與圖文混排/194
3.10.5公式編輯器/197第4章Excel 2003及應用/201
4.1Excel 2003基礎/201
4.1.1Excel 2003窗口/201
4.1.2工作簿的基本操作/205
4.1.3保護工作簿/208
4.2工作表的編輯/209
4.2.1數(shù)據(jù)輸入/209
4.2.2工作表的編輯/215
4.2.3工作表的操作/221
4.3工作表中數(shù)值計算/223
4.3.1使用公式/223
4.3.2使用函數(shù)/228
4.4工作表的格式設置/232
4.4.1單元格格式設置/232
4.4.2頁面設置及打印/242
4.5數(shù)據(jù)管理/246
4.5.1數(shù)據(jù)清單的概念/246
4.5.2數(shù)據(jù)排序/247
4.5.3數(shù)據(jù)篩選/249
4.5.4數(shù)據(jù)分類匯總/252
4.6數(shù)據(jù)圖表化/254
4.6.1圖表的基礎知識/254
4.6.2創(chuàng)建與編輯圖表/257
4.7Word與Excel的協(xié)同操作/263第5章PowerPoint 2003及應用/265
5.1PowerPoint 2003基礎/265
5.1.1PowerPoint 2003的啟動/265
5.1.2PowerPoint 2003的窗口/265
5.1.3視圖方式/266
5.2創(chuàng)建演示文稿/267
5.2.1從空白演示文稿開始創(chuàng)建/268
5.2.2根據(jù)內容提示向導創(chuàng)建演示文稿/269
5.2.3根據(jù)設計模板創(chuàng)建演示文稿/270
5.2.4根據(jù)現(xiàn)有演示文稿創(chuàng)建演示文稿/272
5.3幻燈片的制作和編輯/273
5.3.1幻燈片的制作/273
5.3.2幻燈片的制作/273
5.4幻燈片的編輯和基本格式設置/281
5.4.1選擇幻燈片/281
5.4.2文本的編輯和格式設置/282
5.4.3刪除、隱藏和重排幻燈片/284
5.5幻燈片的修飾/286
5.5.1幻燈片版式/286
5.5.2背景/286
5.5.3應用設計模板/288
5.5.4應用配色方案/289
5.5.5應用母版/290
5.5.6頁眉和頁腳/291
5.6演示文稿放映與打包/292
5.6.1設置動畫效果/292
5.6.2設置切換效果和切換時間/295
5.6.3錄制旁白/296
5.6.4超鏈接/297
5.6.5設置放映方式/299
5.6.6 幻燈片放映方法/301
5.6.7演講者放映方式下的放映控制/302
5.6.8演示文稿的打印/303
5.6.9演示文稿的打包/304第6章Access 2003及應用/306
6.1數(shù)據(jù)庫系統(tǒng)簡介/306
6.1.1數(shù)據(jù)庫的概念/306
6.1.2數(shù)據(jù)庫技術的產生和發(fā)展/307
6.1.3數(shù)據(jù)模型/308
6.1.4Access簡介/311
6.2Access 2003的基本操作/312
6.2.1啟動與退出Access 2003/312
6.2.2Access數(shù)據(jù)庫對象/312
6.2.3數(shù)據(jù)庫基本操作/314
6.3表及應用/318
6.3.1表簡介/318
6.3.2表的建立/319
6.3.3數(shù)據(jù)的編輯/323
6.3.4建立表間關系/325
6.4查詢及應用/327
6.4.1查詢的概念/327
6.4.2查詢的建立/328
6.4.3查詢的基本操作/330
6.5窗體及應用/332
6.5.1窗體的概念/332
6.5.2窗體的建立/333
6.5.3利用窗體進行數(shù)據(jù)處理/337
6.6打印/339
6.6.1記錄的打印/339
6.6.2窗體的打印/339
6.6.3報表的打印/340第7章計算機網絡及Internet/343
7.1計算機網絡基礎知識/343
7.1.1計算機網絡的發(fā)展/343
7.1.2計算機網絡的分類/344
7.1.3計算機網絡的功能/346
7.1.4計算機網絡體系結構和網絡協(xié)議的基本概念/346
7.1.5物理地址和邏輯地址/349
7.1.6計算機網絡硬件/349
7.2Internet基礎知識/351
7.2.1Internet的發(fā)展史及其特點/351
7.2.2Internet提供的服務/352
7.2.3Internet的組成/354
7.2.4IP地址和域名/354
7.2.5Internet在中國/357
7.3Internet常用接入方式/358
7.3.1通過電話撥號接入Internet/359
7.3.2通過局域網接入Internet/364
7.3.3通過ADSL接入Internet/365
7.3.4斷開Internet連接/366
7.4診斷網絡故障的簡單命令/366
7.5WWW與IE瀏覽器/368
7.5.1WWW的基本概念/368
7.5.2IE的基本應用/370
7.5.3在Internet上搜索和下載信息/375
7.5.4IE的基本設置/378
7.6FTP與BBS/381
7.6.1FTP/381
7.6.2BBS/383
7.7電子郵件服務/385
7.7.1電子郵箱簡介/385
7.7.2申請一個免費的電子郵箱/386
7.8使用Outlook Express收發(fā)電子郵件/387
7.8.1郵件賬戶/388
7.8.2創(chuàng)建并發(fā)送電子郵件/391
7.8.3接收和閱讀電子郵件/395
7.8.4郵件管理和通訊簿/396第8章計算機病毒及網絡信息安全/402
8.1計算機病毒/402
8.1.1病毒歷史/402
8.1.2病毒的定義與特性/403
8.1.3病毒的結構及分類/404
8.1.4常見病毒介紹/405
8.1.5計算機病毒的傳染與癥狀/407
8.1.6病毒的預防與清除/407
8.2網絡信息安全/409
8.2.1網絡信息安全概述/409
8.2.2網絡黑客/410
8.2.3計算機犯罪/411
8.2.4信息安全技術/413第9章網頁制作/416
9.1HTML 概述/416
9.1.1HTML和頁面/416
9.1.2HTML文件/417
9.2FrontPage 2003及應用/418
9.2.1FrontPage的啟動與退出/421
9.2.2FrontPage中的視圖/421
9.2.3FrontPage的編輯方式/422
9.2.4網頁制作/422
9.2.5網頁布局/432
9.2.6創(chuàng)建表單頁面/439
9.2.7網頁的發(fā)布/440
第1章走進Qt/1
1.1Qt簡介/1
1.1.1認識Qt/1
1.1.2Qt開發(fā)環(huán)境的主要構成介紹/2
1.1.3使用Qt開發(fā)C++應用程序的優(yōu)勢/4
1.2Qt的下載、安裝與配置/4
1.2.1Windows平臺下Qt的C++語言開發(fā)環(huán)境安裝與配置/4
1.2.2Linux平臺下Qt的C++語言開發(fā)環(huán)境安裝與配置/7
1.3Qt Creator集成開發(fā)環(huán)境/12
1.3.1Qt Creator集成開發(fā)環(huán)境/12
1.3.2Qt Creator常用菜單功能介紹/13
1.3.3使用Qt創(chuàng)建項目/14
1.3.4Qt開發(fā)環(huán)境的使用方法/18
1.3.5Qt項目文件的建立、添加和刪除/18
1.3.6編輯項目的源程序文件和界面文件/19
1.3.7項目編譯模式及其配置/20
1.3.8編譯并鏈接生成項目文件/20
1.3.9糾正編譯或連接出現(xiàn)的錯誤/20
1.3.10Qt工具欄的使用/21
1.4Qt Creator聯(lián)機幫助系統(tǒng)及其使用/21
1.4.1Qt中如何尋求幫助/21
1.4.2幫助文件的打開及使用源代碼
編輯器/22
1.4.3縮小查找范圍/23
1.5使用Qt Creator開發(fā)C++語言程序/24
1.5.1Windows平臺下使用Qt開發(fā)C++語言程序/24
1.5.2Linux平臺下使用Qt開發(fā)C++語言程序/29
1.6習題/36第2章C++程序設計基礎/37
2.1C++語言簡介/37
2.1.1認識C++/37
2.1.2C++的標準化/37
2.2C++源程序的結構/38
2.2.1C++源程序舉例/38
2.2.2C++源程序的結構/40
2.2.3C++語言的基本語法成分/41
2.3基本數(shù)據(jù)與表達式/42
2.3.1數(shù)據(jù)類型/42
2.3.2常量和變量/44
2.3.3運算符與表達式/46
2.4C++中的輸入輸出/47
2.5程序的控制結構/50
2.5.1順序結構/50
2.5.2選擇結構/50
2.5.3循環(huán)結構/55
2.5.4跳轉語句/58
2.6函數(shù)/59
2.6.1函數(shù)/59
2.6.2函數(shù)的其他特性/62
2.7數(shù)組與字符串/65
2.7.1數(shù)組/65
2.7.2字符串與string類/67
2.8指針與引用/70
2.8.1指針/70
2.8.2引用/71
2.9const修飾符/76
2.10動態(tài)內存分配/79
2.11習題/82
2.11.1選擇題/82
2.11.2填空題/83
2.11.3編程題/84第3章類與對象/85
3.1面向對象程序設計概述/85
3.1.1面向對象的基本概念/85
3.1.2面向對象的基本特征/88
3.1.3面向對象的語言簡介/89
3.2類與對象的定義/90
3.2.1類的定義/90
3.2.2對象的定義與使用/97
3.2.3類的作用域/101
3.2.4類的封裝性和信息隱藏——公有接口與私有實現(xiàn)的分離/102
3.3構造函數(shù)與析構函數(shù)/104
3.3.1構造函數(shù)/104
3.3.2復制構造函數(shù)/113
3.3.3析構函數(shù)/118
3.4對象的深復制/120
3.5靜態(tài)成員/122
3.5.1靜態(tài)數(shù)據(jù)成員/122
3.5.2靜態(tài)成員函數(shù)/124
3.6常類型/127
3.6.1常對象/127
3.6.2類的常數(shù)據(jù)成員/128
3.6.3類的常成員函數(shù)/129
3.7友元/131
3.7.1友元函數(shù)/131
3.7.2友元類/136
3.7.3友元應用舉例/138
3.8對象數(shù)組與類的組合/140
3.8.1對象數(shù)組/140
3.8.2類的組合/144
3.9程序舉例/147
3.10習題/149
3.10.1選擇題/149
3.10.2問答及編程題/152第4章繼承與派生/154
4.1單繼承/155
4.1.1繼承的定義/155
4.1.2訪問控制/157
4.1.3重名的成員變量和成員函數(shù)/160
4.1.4在派生類中訪問靜態(tài)成員/162
4.1.5基類的初始化/163
4.2多繼承/168
4.2.1派生類的構造與訪問/168
4.2.2虛繼承/169
4.3習題/170第5章虛函數(shù)與多態(tài)/171
5.1類指針的關系/172
5.2靜態(tài)聯(lián)編和動態(tài)聯(lián)編/174
5.3虛函數(shù)/175
5.4純虛函數(shù)和抽象類/178
5.5習題/181第6章運算符重載/182
6.1運算符重載概述/183
6.1.1運算符重載的實質/183
6.1.2用友元函數(shù)和成員函數(shù)重載運算符的異同/186
6.1.3++和--運算符的重載/188
6.2習題/191第7章模板和異常處理/192
7.1模板的概念/192
7.2函數(shù)模板/192
7.2.1函數(shù)模板的聲明/192
7.2.2函數(shù)模板的實例化/193
7.2.3函數(shù)模板應用舉例/195
7.3類模板/197
7.3.1類模板的定義/197
7.3.2類模板的實例化/198
7.3.3類模板的應用舉例/199
7.4標準模板庫/202
7.4.1容器/203
7.4.2算法/206
7.4.3迭代器/209
7.5異常處理/210
7.5.1異常處理概述/210
7.5.2異常處理的實現(xiàn)/211
7.5.3標準庫中的異常類型/216
7.6習題/218
7.6.1選擇題/218
7.6.2編程題/218第8章輸入輸出流與命名空間/220
8.1I/O流的概念/220
8.2標準I/O流/221
8.2.1標準I/O流概述/221
8.2.2標準輸出/222
8.2.3標準輸入/224
8.2.4重載插入/提取函數(shù)/225
8.3格式控制/228
8.3.1用ios成員函數(shù)格式化/228
8.3.2用操縱算子格式化/231
8.4文件處理/232
8.4.1文件和流/232
8.4.2文件的打開和關閉/233
8.4.3文本文件/234
8.4.4二進制文件/235
8.5命名空間/238
8.6習題/241第9章圖形界面程序設計基礎/242
9.1圖形界面程序設計基礎知識/242
9.1.1C++中的對象/242
9.1.2Qt C++中的窗體/243
9.1.3Qt C++中的部件和部件類/243
9.1.4Qt C++中的屬性(Properties)窗口/244
9.2Qt的信號和槽/244
9.3Qt的元對象系統(tǒng)/246
9.4Qt命令行法開發(fā)圖形界面程序/246
9.5Qt中如何實現(xiàn)用戶操作的響應/249
9.6Qt中如何實現(xiàn)窗口部件的布局/250
9.7習題/252第10章對話框編程/254
10.1代碼編程創(chuàng)建對話框/254
10.2對話框的可視化設計/263
10.3可擴展的對話框/271
10.4對話框的動態(tài)實現(xiàn)/279
10.5Qt內置的窗口部件和對話框類/280
10.6習題/285第11章使用Qt開發(fā)文本編輯器/286
11.1Qt Creator的下載和安裝/286
11.2Qt Creator開發(fā)簡單的文本編輯器/287
11.2.1創(chuàng)建項目TextEditor/287
11.2.2TextEditor的主窗口、菜單和
圖標/289
11.2.3TextEditor文件新建、保存和另存為的功能實現(xiàn)/300
11.2.4TextEditor文件的打開、關閉和退出系統(tǒng)的功能實現(xiàn)/308
11.2.5TextEditor文本復制、剪切、粘貼以及撤銷的功能實現(xiàn)/309
11.2.6TextEditor文本查找功能的
實現(xiàn)/310
11.2.7TextEditor查找和定位函數(shù)的
方法/311
11.2.8TextEditor中實現(xiàn)狀態(tài)欄/316
11.3習題/318附錄AC++關鍵字/319附錄BC++運算符/320
參考文獻/321