本書以零基礎(chǔ)入門為宗旨,用范例引導(dǎo)讀者學(xué)習(xí),深入淺出地介紹了C語(yǔ)言的相關(guān)知識(shí)和實(shí)戰(zhàn)技能。
本書第Ⅰ篇【基礎(chǔ)知識(shí)】主要講解步入C語(yǔ)言的世界Hello C、C程序的結(jié)構(gòu)、C語(yǔ)言的基本構(gòu)成元素、變量、數(shù)制、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式、算法、順序結(jié)構(gòu)與選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)與轉(zhuǎn)向語(yǔ)句、數(shù)組以及字符數(shù)組和字符串等;第Ⅱ篇【核心技術(shù)函數(shù)】主要講解函數(shù)、變量的作用范圍和存儲(chǔ)類型、庫(kù)函數(shù)、結(jié)構(gòu)體和聯(lián)合體、枚舉等;第Ⅲ篇【高級(jí)應(yīng)用指針及文件】主要介紹指針、指針與數(shù)組、指針與函數(shù)、指針與字符串、指針與結(jié)構(gòu)體、指針的高級(jí)應(yīng)用與技巧以及文件等;第Ⅳ篇【數(shù)據(jù)結(jié)構(gòu)及C語(yǔ)言中的常用算法】主要介紹數(shù)據(jù)結(jié)構(gòu)、C語(yǔ)言中的高級(jí)算法、數(shù)學(xué)問(wèn)題算法、排序問(wèn)題算法、查找問(wèn)題算法以及算法競(jìng)賽實(shí)例等;第Ⅴ篇【趣味解題】主要介紹歌手比賽評(píng)分系統(tǒng)、哥德巴赫猜想、打印日歷、背包問(wèn)題、火車車廂重排、商人過(guò)河以及K階斐波那契數(shù)列的實(shí)現(xiàn)等。
本書提供了與圖書內(nèi)容全程同步的教學(xué)錄像。此外,還贈(zèng)送了大量相關(guān)的學(xué)習(xí)資料,以便讀者擴(kuò)展學(xué)習(xí)。
本書適合任何想學(xué)習(xí)C語(yǔ)言的讀者,無(wú)論你是否從事計(jì)算機(jī)相關(guān)行業(yè)、是否接觸過(guò)C語(yǔ)言,均可通過(guò)學(xué)習(xí)本書快速掌握C語(yǔ)言的開(kāi)發(fā)方法和技巧。
李嵐,工學(xué)碩士,高級(jí)工程師,現(xiàn)執(zhí)教于河南工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,在學(xué)校常年承擔(dān)程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)任務(wù),對(duì)C語(yǔ)言的知識(shí)結(jié)構(gòu)及應(yīng)用有深入了解,能夠準(zhǔn) 確把握學(xué)生在學(xué)習(xí)C語(yǔ)言過(guò)程中的主要問(wèn)題和困惑。主要研究方向?yàn)檐浖こ、信息系統(tǒng),有豐富的MIS系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),主編或者參編教材5本,獲河南省教育廳教學(xué)成果二等獎(jiǎng)2項(xiàng),獲河南省科技進(jìn)步三等獎(jiǎng)2項(xiàng)。
第 0 章 學(xué)習(xí)攻略
0.1 編程的魔力 002
0.2 C語(yǔ)言的起源及特點(diǎn) 002
0.3 C語(yǔ)言的用途 004
0.4 C語(yǔ)言實(shí)現(xiàn)的人機(jī)交互 004
0.5 C語(yǔ)言的學(xué)習(xí)方法 005
第 Ⅰ 篇基礎(chǔ)知識(shí)
第 1 章 步入C語(yǔ)言的世界Hello C
1.1 C語(yǔ)言的開(kāi)發(fā)環(huán)境 009
1.1.1 C語(yǔ)言常用的開(kāi)發(fā)環(huán)境 009
1.1.2 Code::Blocks開(kāi)發(fā)環(huán)境 010
1.1.3 手機(jī)編譯器 011
1.2 開(kāi)始C編程我的第 一個(gè)C程序 012
1.2.1 程序編寫及運(yùn)行流程 012
1.2.2 在Code::Blocks中開(kāi)發(fā)C程序 013
1.2.3 在手機(jī)編譯器中開(kāi)發(fā)C程序 015
1.3 高手點(diǎn)撥 016
1.4 實(shí)戰(zhàn)練習(xí) 016
第 2 章 C程序的結(jié)構(gòu)
2.1 引例 018
2.2 聲明區(qū) 018
2.2.1 頭文件 018
2.2.2 函數(shù)聲明 019
2.2.3 變量聲明 019
2.3 主函數(shù) 020
2.4 函數(shù)定義區(qū) 020
2.5 注釋 021
2.6 書寫代碼的規(guī)則 021
2.7 高手點(diǎn)撥 022
2.8 實(shí)戰(zhàn)練習(xí) 022
第 3 章 C語(yǔ)言的基本構(gòu)成元素
3.1 標(biāo)識(shí)符和關(guān)鍵字 024
3.1.1 標(biāo)識(shí)符 024
3.1.2 關(guān)鍵字 024
3.2 常量 024
3.3 常量的類別 025
3.3.1 數(shù)值常量 025
3.3.2 字符常量 026
3.3.3 字符串常量 028
3.3.4 符號(hào)常量 028
3.4 綜合應(yīng)用常量與符號(hào)常量 028
3.5 高手點(diǎn)撥 029
3.6 實(shí)戰(zhàn)練習(xí) 030
第 4 章 變量
4.1 變量概述 032
4.1.1 變量的定義 032
4.1.2 變量的定義與聲明 033
4.2 變量的初始化和賦值 033
4.3 變量的輸入和輸出 034
4.3.1 格式化輸出函數(shù)printf() 034
4.3.2 格式控制符 035
4.3.3 格式化輸入函數(shù)scanf() 040
4.4 字符的輸入和輸出 042
4.4.1 字符輸出函數(shù)putchar() 043
4.4.2 字符輸入函數(shù)getchar() 043
4.5 綜合應(yīng)用對(duì)變量的操作 044
4.6 高手點(diǎn)撥 046
4.7 實(shí)戰(zhàn)練習(xí) 046
第 5 章 計(jì)算機(jī)中的數(shù)制系統(tǒng)
5.1 二進(jìn)制 048
5.2 八進(jìn)制 049
5.3 十進(jìn)制 049
5.4 十六進(jìn)制 050
5.5 數(shù)制間的轉(zhuǎn)換 050
5.6 綜合應(yīng)用數(shù)制轉(zhuǎn)換 051
5.7 高手點(diǎn)撥 052
5.8 實(shí)戰(zhàn)練習(xí) 052
第 6 章 數(shù)據(jù)的種類數(shù)據(jù)類型
6.1 數(shù)據(jù)類型的分類 054
6.1.1 基本類型 054
6.1.2 構(gòu)造類型 054
6.1.3 指針類型 054
6.1.4 空類型 054
6.2 整型 055
6.3 字符型 057
6.4 浮點(diǎn)型 059
6.5 類型轉(zhuǎn)換 060
6.5.1 隱式轉(zhuǎn)換 060
6.5.2 顯式轉(zhuǎn)換 061
6.6 綜合應(yīng)用數(shù)據(jù)類型轉(zhuǎn)換 062
6.7 高手點(diǎn)撥 063
6.8 實(shí)戰(zhàn)練習(xí) 064
第 7 章 C 語(yǔ)言中的運(yùn)算符和表達(dá)式
7.1 運(yùn)算符和表達(dá)式 066
7.1.1 運(yùn)算符 066
7.1.2 表達(dá)式 066
7.2 算術(shù)運(yùn)算符和表達(dá)式 067
7.2.1 算術(shù)運(yùn)算符 067
7.2.2 算術(shù)表達(dá)式 067
7.2.3 應(yīng)用舉例 067
7.3 關(guān)系運(yùn)算符和表達(dá)式 069
7.3.1 關(guān)系運(yùn)算符 069
7.3.2 關(guān)系表達(dá)式 069
7.3.3 應(yīng)用舉例 069
7.4 邏輯運(yùn)算符和表達(dá)式 070
7.4.1 邏輯運(yùn)算符 070
7.4.2 邏輯表達(dá)式 071
7.4.3 應(yīng)用舉例 071
7.5 條件運(yùn)算符和表達(dá)式 073
7.6 賦值運(yùn)算符和表達(dá)式 074
7.6.1 賦值運(yùn)算符 074
7.6.2 賦值表達(dá)式 074
7.6.3 應(yīng)用舉例 075
7.7 自增、自減運(yùn)算符 076
7.8 逗號(hào)運(yùn)算符和表達(dá)式 077
7.9 位運(yùn)算符 078
7.9.1 按位與運(yùn)算符 078
7.9.2 按位或運(yùn)算符 079
7.9.3 按位異或運(yùn)算符 079
7.9.4 按位取反運(yùn)算符 080
7.9.5 左移運(yùn)算符 080
7.9.6 右移運(yùn)算符 081
7.9.7 位運(yùn)算賦值運(yùn)算符 082
7.9.8 位運(yùn)算應(yīng)用 082
7.10 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 085
7.10.1 算術(shù)運(yùn)算符 085
7.10.2 關(guān)系運(yùn)算符 085
7.10.3 邏輯運(yùn)算符 085
7.10.4 賦值運(yùn)算符 085
7.11 綜合應(yīng)用條件運(yùn)算符的應(yīng)用 086
7.12 高手點(diǎn)撥 087
7.13 實(shí)戰(zhàn)練習(xí) 088
第 8 章 程序的靈魂算法
8.1 算法概述 090
8.1.1 算法的定義 090
8.1.2 算法的特性 090
8.1.3 簡(jiǎn)單算法舉例解方程 091
8.2 如何表示一個(gè)算法 092
8.2.1 自然語(yǔ)言表示算法 092
8.2.2 流程圖表示算法 094
8.2.3 N-S 流程圖表示算法 098
8.2.4 偽代碼表示算法 100
8.2.5 計(jì)算機(jī)語(yǔ)言表示算法 101
8.3 結(jié)構(gòu)化程序設(shè)計(jì)方法 101
8.4 衡量程序質(zhì)量的標(biāo)準(zhǔn) 102
8.5 綜合應(yīng)用求解一元二次方程的根 103
8.6 高手點(diǎn)撥 104
8.7 實(shí)戰(zhàn)練習(xí) 104
第 9 章 順序結(jié)構(gòu)與選擇結(jié)構(gòu)
9.1 語(yǔ)句 106
9.1.1 表達(dá)式語(yǔ)句 106
9.1.2 控制語(yǔ)句 106
9.1.3 空語(yǔ)句和復(fù)合語(yǔ)句 106
9.1.4 函數(shù)調(diào)用語(yǔ)句 107
9.2 順序結(jié)構(gòu) 107
9.3 選擇結(jié)構(gòu) 109
9.3.1 選擇結(jié)構(gòu)的定義 109
9.3.2 二分支選擇結(jié)構(gòu)if 語(yǔ)句 109
9.3.3 二分支選擇結(jié)構(gòu)if-else 語(yǔ)句 111
9.3.4 二分支選擇結(jié)構(gòu)if-else 的嵌套形式 112
9.3.5 多分支選擇結(jié)構(gòu)switch 語(yǔ)句 116
9.4 綜合應(yīng)用計(jì)算獎(jiǎng)金 118
9.5 高手點(diǎn)撥 119
9.6 實(shí)戰(zhàn)練習(xí) 120
第 10章 循環(huán)結(jié)構(gòu)與轉(zhuǎn)向語(yǔ)句
10.1 循環(huán)結(jié)構(gòu) 122
10.1.1 循環(huán)結(jié)構(gòu)的定義 122
10.1.2 for 語(yǔ)句 123
10.1.3 while 語(yǔ)句 126
10.1.4 do-while 語(yǔ)句 127
10.1.5 循環(huán)的嵌套 129
10.2 轉(zhuǎn)向語(yǔ)句 132
10.2.1 goto 語(yǔ)句 132
10.2.2 break 語(yǔ)句 133
10.2.3 continue 語(yǔ)句 135
10.3 綜合應(yīng)用簡(jiǎn)單計(jì)算器的設(shè)計(jì) 136
10.4 高手點(diǎn)撥 138
10.5 實(shí)戰(zhàn)練習(xí) 138
第 11章 數(shù)組
11.1 數(shù)組概述 140
11.2 一維數(shù)組 140
11.2.1 一維數(shù)組的定義 140
11.2.2 一維數(shù)組的初始化 142
11.2.3 一維數(shù)組元素的引用 143
11.2.4 一維數(shù)組的應(yīng)用舉例 145
11.3 二維數(shù)組 147
11.3.1 二維數(shù)組的定義 148
11.3.2 二維數(shù)組的初始化 148
11.3.3 二維數(shù)組元素的引用 149
11.3.4 二維數(shù)組的應(yīng)用舉例 149
11.4 綜合應(yīng)用楊輝三角 151
11.5 高手點(diǎn)撥 152
11.6 實(shí)戰(zhàn)練習(xí) 153
第 12章 字符數(shù)組和字符串
12.1 字符數(shù)組概述 156
12.2 字符數(shù)組 156
12.2.1 字符數(shù)組的定義 156
12.2.2 字符數(shù)組的初始化 156
12.2.3 字符數(shù)組的引用 157
12.2.4 字符數(shù)組的輸入與輸出 157
12.3 字符串 158
12.3.1 字符串和字符數(shù)組 159
12.3.2 字符串的輸入和輸出 160
12.3.3 字符串應(yīng)用舉例 162
12.4 綜合應(yīng)用自動(dòng)分類字符 164
12.5 高手點(diǎn)撥 165
12.6 實(shí)戰(zhàn)練習(xí) 166
第 Ⅱ 篇 核心技術(shù)函數(shù)
第 13章 函數(shù)
13.1 函數(shù)概述 169
13.1.1 什么是函數(shù) 169
13.1.2 函數(shù)的分類 170
13.2 函數(shù)功能 171
13.3 函數(shù)的返回值及類型 173
13.3.1 函數(shù)的返回值 173
13.3.2 函數(shù)返回值的類型 174
13.4 函數(shù)的參數(shù)及傳遞方式 177
13.4.1 函數(shù)的參數(shù) 177
13.4.2 函數(shù)參數(shù)的傳遞方式 179
13.4.3 帶參數(shù)的主函數(shù) 182
13.5 函數(shù)的調(diào)用 183
13.5.1 函數(shù)調(diào)用方式 184
13.5.2 函數(shù)的聲明 185
13.5.3 函數(shù)的嵌套調(diào)用 187
13.5.4 函數(shù)的遞歸調(diào)用 188
13.6 內(nèi)部函數(shù)和外部函數(shù) 193
13.6.1 內(nèi)部函數(shù) 193
13.6.2 外部函數(shù) 193
13.7 綜合應(yīng)用用截弦法求方程的根 195
13.8 高手點(diǎn)撥 196
13.9 實(shí)戰(zhàn)練習(xí) 197
第 14章 變量的作用范圍和存儲(chǔ)類型
14.1 變量的作用范圍 200
14.1.1 局部變量 200
14.1.2 全局變量 201
14.2 變量的存儲(chǔ)類型 203
14.2.1 自動(dòng)類型 204
14.2.2 寄存器類型 204
14.2.3 靜態(tài)類型 205
14.2.4 外部類型 207
14.3 綜合應(yīng)用根據(jù)日期判斷是該年第幾天 208
14.4 高手點(diǎn)撥 209
14.5 實(shí)戰(zhàn)練習(xí) 210
第 15章 庫(kù)函數(shù)
15.1 C 標(biāo)準(zhǔn)函數(shù)庫(kù) 212
15.2 數(shù)學(xué)函數(shù) 212
15.2.1 值函數(shù) 213
15.2.2 冪函數(shù)和開(kāi)平方函數(shù) 213
15.2.3 指數(shù)函數(shù)和對(duì)數(shù)函數(shù) 214
15.2.4 三角函數(shù) 214
15.2.5 取整函數(shù)和取余函數(shù) 215
15.3 字符串處理函數(shù) 216
15.3.1 字符串長(zhǎng)度函數(shù) 216
15.3.2 字符串連接函數(shù) 216
15.3.3 字符串復(fù)制函數(shù) 217
15.3.4 字符串比較函數(shù) 218
15.3.5 字符串查找函數(shù) 219
15.3.6 字符串填充函數(shù) 220
15.4 字符處理函數(shù) 220
15.4.1 字符類型判斷函數(shù) 221
15.4.2 字符大小寫轉(zhuǎn)換函數(shù) 222
15.5 數(shù)據(jù)類型轉(zhuǎn)換和存儲(chǔ)管理函數(shù) 222
15.5.1 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 222
15.5.2 存儲(chǔ)管理函數(shù) 223
15.6 隨機(jī)函數(shù) 225
15.6.1 初識(shí)隨機(jī)函數(shù) 225
15.6.2 使用隨機(jī)函數(shù) 226
15.7 日期和時(shí)間處理函數(shù) 227
15.8 診斷函數(shù) 228
15.9 其他函數(shù) 229
15.9.1 exit()函數(shù) 229
15.9.2 qsort()函數(shù) 230
15.10 綜合應(yīng)用猜數(shù)字游戲 231
15.11 高手點(diǎn)撥 233
15.12 實(shí)戰(zhàn)練習(xí) 233
第 16章 結(jié)構(gòu)體和聯(lián)合體
16.1 結(jié)構(gòu)體 236
16.1.1 結(jié)構(gòu)體類型的定義 236
16.1.2 結(jié)構(gòu)體變量的定義 236
16.1.3 結(jié)構(gòu)體變量的初始化 237
16.1.4 結(jié)構(gòu)體變量的引用 238
16.2 結(jié)構(gòu)體數(shù)組 238
16.2.1 結(jié)構(gòu)體數(shù)組的定義 239
16.2.2 結(jié)構(gòu)體數(shù)組的初始化 239
16.2.3 結(jié)構(gòu)體數(shù)組元素的引用 240
16.3 結(jié)構(gòu)體與函數(shù) 241
16.3.1 結(jié)構(gòu)體變量作為函數(shù)的參數(shù)傳值調(diào)用方式 241
16.3.2 結(jié)構(gòu)體作為函數(shù)的返回值 242
16.4 聯(lián)合體 243
16.4.1 聯(lián)合體類型的定義 243
16.4.2 聯(lián)合體變量的定義 244
16.4.3 聯(lián)合體變量的初始化 244
16.4.4 聯(lián)合體變量的引用 246
16.5 結(jié)構(gòu)體和聯(lián)合體的區(qū)別與聯(lián)系 247
16.6 綜合應(yīng)用計(jì)算學(xué)生平均成績(jī) 247
16.7 高手點(diǎn)撥 249
16.8 實(shí)戰(zhàn)練習(xí) 249
第 17章 枚舉
17.1 枚舉類型 252
17.1.1 枚舉類型的定義 252
17.1.2 枚舉類型的應(yīng)用 253
17.2 高手點(diǎn)撥 254
17.3 實(shí)戰(zhàn)練習(xí) 254
第 Ⅲ 篇高級(jí)應(yīng)用指針及文件
第 18章 指針
18.1 指針概述 257
18.1.1 指針類型的變量和定義 257
18.1.2 指針?biāo)赶蜃兞康念愋?257
18.1.3 指針的值 257
18.1.4 指針?biāo)純?nèi)存 257
18.2 指針的算術(shù)運(yùn)算 258
18.2.1 指針與整數(shù)的運(yùn)算 258
18.2.2 指針與指針的運(yùn)算 259
18.3 &和*運(yùn)算符 260
18.4 指針表達(dá)式 262
18.5 綜合應(yīng)用使用指針進(jìn)行排序 262
18.6 高手點(diǎn)撥 263
18.7 實(shí)戰(zhàn)練習(xí) 263
第 19章 指針與數(shù)組
19.1 數(shù)組指針 266
19.2 數(shù)組指針作為函數(shù)參數(shù) 266
19.3 指針與字符數(shù)組 267
19.4 指針數(shù)組與指針的指針 267
19.5 綜合應(yīng)用報(bào)數(shù)游戲(約瑟夫環(huán)) 269
19.6 高手點(diǎn)撥 270
19.7 實(shí)戰(zhàn)練習(xí) 270
第 20章 指針與函數(shù)
20.1 函數(shù)指針 272
20.1.1 函數(shù)指針的定義 272
20.1.2 函數(shù)指針的賦值 272
20.1.3 通過(guò)函數(shù)指針調(diào)用函數(shù) 272
20.2 指針函數(shù) 273
20.3 指向函數(shù)的指針作為函數(shù)參數(shù) 275
20.4 綜合應(yīng)用根據(jù)當(dāng)年第幾天輸出該天的日期 276
20.5 高手點(diǎn)撥 277
20.6 實(shí)戰(zhàn)練習(xí) 278
第 21章 指針與字符串
21.1 字符串指針 280
21.1.1 字符串指針的定義 280
21.1.2 字符串指針的應(yīng)用 281
21.2 字符串指針作為函數(shù)參數(shù) 284
21.3 字符串指針與字符數(shù)組的區(qū)別 285
21.4 綜合應(yīng)用回文問(wèn)題 286
21.5 實(shí)戰(zhàn)練習(xí) 287
第 22章 指針與結(jié)構(gòu)體
22.1 結(jié)構(gòu)體指針 290
22.1.1 結(jié)構(gòu)體指針的定義 290
22.1.2 結(jié)構(gòu)體指針的初始化 290
22.1.3 使用指針訪問(wèn)結(jié)構(gòu)體成員 290
22.1.4 給結(jié)構(gòu)體指針賦值 291
22.2 指向結(jié)構(gòu)體數(shù)組的指針 292
22.3 結(jié)構(gòu)體指針作為函數(shù)參數(shù) 294
22.4 綜合應(yīng)用利用結(jié)構(gòu)體創(chuàng)建單鏈表 295
22.5 高手點(diǎn)撥 296
22.6 實(shí)戰(zhàn)練習(xí) 296
第 23章 指針的高級(jí)應(yīng)用與技巧
23.1 指向指針的指針 298
23.2 void指針 299
23.3 內(nèi)存操作 301
23.4 指針的傳遞 304
23.5 綜合應(yīng)用數(shù)值的降序排列 304
23.6 高手點(diǎn)撥 305
23.7 實(shí)戰(zhàn)練習(xí) 306
第 24章 文件
24.1 文件概述 308
24.1.1 文件類型 308
24.1.2 C如何操作文件文件指針 308
24.1.3 文件緩沖區(qū) 309
24.2 文件的打開(kāi)和關(guān)閉 309
24.2.1 文件的打開(kāi)函數(shù)fopen() 309
24.2.2 文件的關(guān)閉函數(shù)fclose() 310
24.2.3 文件結(jié)束檢測(cè)函數(shù)feof() 311
24.3 文件的順序讀寫 311
24.3.1 文本文件中字符的輸入/輸出 311
24.3.2 文本文件中字符串的輸入/輸出 313
24.3.3 文本文件中數(shù)據(jù)的格式化輸入/輸出 315
24.3.4 二進(jìn)制文件的輸入/輸出數(shù)據(jù)塊讀寫 317
24.4 文件的隨機(jī)讀寫 319
24.5 綜合應(yīng)用文件操作 320
24.6 高手點(diǎn)撥 321
24.7 實(shí)戰(zhàn)練習(xí) 322
第 Ⅳ 篇數(shù)據(jù)結(jié)構(gòu)及C語(yǔ)言中的常用算法
第 25章 數(shù)據(jù)管理者數(shù)據(jù)結(jié)構(gòu)
25.1 數(shù)據(jù)結(jié)構(gòu)概述 325
25.1.1 邏輯結(jié)構(gòu) 325
25.1.2 存儲(chǔ)結(jié)構(gòu) 326
25.1.3 數(shù)據(jù)的運(yùn)算 326
25.2 線性表 326
25.2.1 線性表的定義 326
25.2.2 線性表的主要操作 327
25.2.3 順序表 327
25.2.4 單鏈表 329
25.3 棧 332
25.3.1 棧的定義 332
25.3.2 棧的主要操作 333
25.3.3 順序棧 333
25.3.4 鏈?zhǔn)綏?333
25.4 隊(duì)列 334
25.4.1 隊(duì)列的定義 334
25.4.2 隊(duì)列的主要操作 334
25.4.3 順序隊(duì)列 334
25.4.4 鏈隊(duì)列 335
25.5 樹(shù)和二叉樹(shù) 335
25.5.1 樹(shù)和二叉樹(shù)的定義 336
25.5.2 二叉樹(shù)的主要操作 336
25.5.3 二叉樹(shù)的存儲(chǔ)表示 336
25.5.4 二叉樹(shù)的遍歷 338
25.6 圖 338
25.6.1 圖的定義 338
25.6.2 圖的主要操作 338
25.6.3 圖的存儲(chǔ)表示 338
25.6.4 圖的遍歷 339
25.7 綜合應(yīng)用鏈表的反轉(zhuǎn) 342
25.8 高手點(diǎn)撥 343
25.9 實(shí)戰(zhàn)練習(xí) 344
第 26章 C語(yǔ)言中的高級(jí)算法
26.1 模擬算法 346
26.2 簡(jiǎn)單動(dòng)態(tài)規(guī)劃 347
26.3 用遞歸實(shí)現(xiàn)回溯算法 350
26.4 短路徑算法 352
26.4.1 只有五行的算法Floyd-Warshall 352
26.4.2 Dijkstra 算法單源短邊 352
26.4.3 Bellman-Ford算法解決負(fù)權(quán)邊 353
26.4.4 Bellman-Ford 的隊(duì)列優(yōu)化算法 353
26.4.5 短路徑算法對(duì)比分析 353
26.5 分治算法 356
26.6 貪心算法 358
26.7 綜合應(yīng)用鏢局運(yùn)鏢 359
26.8 高手點(diǎn)撥 361
26.9 實(shí)戰(zhàn)練習(xí) 361
第 27章 數(shù)學(xué)問(wèn)題算法
27.1 質(zhì)因數(shù)分解 364
27.2 公約數(shù)的歐幾里得算法 365
27.3 加法原理與乘法原理 366
27.4 排列與組合 367
27.5 綜合應(yīng)用進(jìn)站方案 368
27.6 高手點(diǎn)撥 369
27.7 實(shí)戰(zhàn)練習(xí) 370
第 28章 排序問(wèn)題算法
28.1 插入排序法 372
28.2 選擇排序法 373
28.3 冒泡排序法 375
28.4 快速排序法 376
28.5 桶排序法 378
28.6 高手點(diǎn)撥 379
28.7 實(shí)戰(zhàn)練習(xí) 380
第 29章 查找問(wèn)題算法
29.1 順序查找法 382
29.2 折半查找法 384
29.3 高手點(diǎn)撥 386
29.4 實(shí)戰(zhàn)練習(xí) 386
第30章 算法競(jìng)賽實(shí)例
30.1 Hilbert曲線 388
30.2 四色問(wèn)題 390
30.3 跳馬問(wèn)題 391
30.4 生成全部排列及其應(yīng)用 392
30.5 貪吃蛇游戲 393
30.6 幻方 394
30.7 高精度計(jì)算 395
30.8 高手點(diǎn)撥 396
30.9 實(shí)戰(zhàn)練習(xí) 396
第 Ⅴ 篇趣味解題
第31章 歌手比賽評(píng)分系統(tǒng)
31.1 問(wèn)題描述 399
31.2 問(wèn)題分析及實(shí)現(xiàn) 399
31.2.1 問(wèn)題分析 399
31.2.2 問(wèn)題實(shí)現(xiàn) 399
31.2.3 程序運(yùn)行 403
31.3 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決方案 406
第32章 哥德巴赫猜想
32.1 問(wèn)題描述 408
32.2 問(wèn)題分析及實(shí)現(xiàn) 408
32.2.1 問(wèn)題分析 408
32.2.2 問(wèn)題實(shí)現(xiàn) 408
32.2.3 程序運(yùn)行 410
32.3 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決方案 410
第33章 打印日歷
33.1 問(wèn)題描述 412
33.2 問(wèn)題分析及實(shí)現(xiàn) 412
33.2.1 問(wèn)題分析 412
33.2.2 問(wèn)題實(shí)現(xiàn) 412
33.2.3 程序運(yùn)行 413
33.3 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決方案 414
第34章 背包問(wèn)題
34.1 問(wèn)題描述 416
34.2 問(wèn)題分析及實(shí)現(xiàn) 416
34.2.1 問(wèn)題分析 416
34.2.2 問(wèn)題實(shí)現(xiàn) 416
34.2.3 程序運(yùn)行 419
34.3 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決方案 419
第35章 火車車廂重排
35.1 問(wèn)題描述 422
35.2 問(wèn)題分析及實(shí)現(xiàn) 422
35.2.1 問(wèn)題分析 422
35.2.2 問(wèn)題實(shí)現(xiàn) 422
35.2.3 程序運(yùn)行 425
35.3 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決方案 426
第36章 商人過(guò)河
36.1 問(wèn)題描述 428
36.2 問(wèn)題分析及實(shí)現(xiàn) 428
36.2.1 問(wèn)題分析 428
36.2.2 問(wèn)題實(shí)現(xiàn) 428
36.2.3 程序運(yùn)行 430
36.3 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決方案 430
第37章 K階斐波那契數(shù)列的實(shí)現(xiàn)
37.1 問(wèn)題描述 432
37.2 問(wèn)題分析及實(shí)現(xiàn) 432
37.2.1 問(wèn)題分析 432
37.2.2 問(wèn)題實(shí)現(xiàn) 432
37.2.3 程序運(yùn)行 433
37.3 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決方案 434