本書(shū)精選了大量綜合編程案例,基本上涵蓋了當前基礎算法領(lǐng)域的熱點(diǎn)問(wèn)題。本書(shū)共有8章,分別為字符串,排序和查找,棧、鏈表與隊列,樹(shù)與圖,遞歸與分治器,集合與映射,Win32 GUI編程基礎,綜合編程課程設計實(shí)例。
丁展,博士,畢業(yè)于浙江大學(xué)計算機科學(xué)與技術(shù),現任職于金陵科技學(xué)院軟件工程學(xué)院,中國計算機學(xué)會(huì )會(huì )員,著(zhù)作方向為程序設計、軟件開(kāi)發(fā),曾在人民郵電出版社出版《Visual C++網(wǎng)絡(luò )通信編程實(shí)用案例精選》 《Visual C++游戲開(kāi)發(fā)技術(shù)與實(shí)例》。從事C/C++教學(xué)工作多年,目前是金陵科技學(xué)院ACM競賽指導老師。曾承擔兩項國家自然科學(xué)基金,海量空間數據的連續模型建模技術(shù),點(diǎn)云曲面的數字拓撲與幾何的若干基礎問(wèn)題研究。
目 錄
第1章 字符串處理 1
1.1 字符串基本操作 1
1.1.1 字符串拷貝 1
1.1.2 字符串連接 3
1.1.3 反轉字符串 6
1.1.4 大小寫(xiě)轉換 8
1.1.5 字符串與數的轉換 10
1.1.6 字符串查找 14
1.1.7 刪除字符 16
1.1.8 字符串字典比較 17
1.2 字符串處理常見(jiàn)問(wèn)題 20
1.2.1 居民身份證號的表示 20
1.2.2 std::string與const char*轉換 21
1.2.3 字符串與buffer緩沖 21
1.2.4 設置浮點(diǎn)數精度 22
1.2.5 得到一行輸入的字符串 23
1.2.6 統計一行文本中單詞個(gè)數 24
1.2.7 std::stream的高速緩沖方法 25
1.3 綜合編程實(shí)例:公民數據模擬 27
第2章 排序和查找 34
2.1 桶排序(bucket sort) 34
2.2 qsort排序 34
2.2.1 整型數組的qsort 35
2.2.2 浮點(diǎn)型數組的qsort 36
2.2.3 字符型數組的qsort 37
2.2.4 字符串數組的qsort 38
2.2.5 結構類(lèi)型數組的qsort 40
2.3 std::sort排序 43
2.3.1 std::sort基本用法 44
2.3.2 std::greater基本用法 46
2.3.3 自定義類(lèi)型排序 46
2.4 二分查找算法 48
2.5 std::find查找 51
2.6 綜合編程實(shí)例 52
第3章 棧、鏈表與隊列 64
3.1 棧 64
3.1.1 std::stack 64
3.1.2 綜合編程實(shí)例 65
3.2 鏈表 74
3.2.1 std::list 75
3.2.2 綜合編程實(shí)例 77
3.3 隊列 80
3.3.1 std::queue 80
3.3.2 std::deque 81
3.3.3 綜合編程實(shí)例:卡片游戲 82
第4章 樹(shù)與圖 84
4.1 二叉樹(shù) 84
4.1.1 完全二叉樹(shù) 84
4.1.2 二叉樹(shù)遍歷 85
4.1.3 手寫(xiě)二叉樹(shù)的遍歷 86
4.1.4 二叉樹(shù)高度計算 87
4.1.5 二叉樹(shù)刪除 88
4.1.6 綜合編程實(shí)例 88
4.2 圖 102
4.2.1 圖的基本操作 102
4.2.2 圖的表示方法 102
4.2.3 綜合編程實(shí)例 103
第5章 遞歸與分治 112
5.1 漢諾塔 112
5.2 子串組合 113
5.3 數組組合 115
5.4 格子排列 118
5.5 八皇后 122
5.6 循環(huán)賽日程安排 124
5.7 棋盤(pán)覆蓋 128
第6章 集合與映射 132
6.1 集合 132
6.1.1 std::set 132
6.1.2 集合求交 set_intersection 133
6.1.3 集合求并 set_union 135
6.1.4 集合求差 set_difference 136
6.1.5 綜合編程實(shí)例:集合相似度 137
6.2 映射 139
6.2.1 std::map 139
6.2.2 std::multimap 140
6.3 哈希映射 142
6.3.1 常用的哈希函數 142
6.3.2 哈希沖突的處理方法 142
6.3.3 綜合編程實(shí)例 143
第7章 Win32 GUI編程基礎 148
7.1 Win32 GUI 148
7.1.1 CodeBlocks第一個(gè)Win32教程 148
7.1.2 Visual Studio 2015第一個(gè)Win32 GUI程序 150
7.1.3 代碼分析 151
7.2 Win32 消息基礎 155
7.2.1 窗口關(guān)閉消息WM_CLOSE 155
7.2.2 窗口大小調整消息 WM_SIZE 156
7.2.3 窗口創(chuàng )建消息 WM_CREATE 157
7.2.4 菜單或其他按鈕消息 WM_COMMAND 158
7.2.5 鼠標消息 159
7.2.6 繪制消息WM_PAINT 160
7.2.7 鍵盤(pán)消息WM_KEYDOWN 和 WM_KEYUP 161
7.3 綜合編程實(shí)例:簡(jiǎn)單多邊形的創(chuàng )建、繪制、平移與旋轉 162
7.4 Win32 圖形設備接口GDI 176
7.4.1 線(xiàn)段和曲線(xiàn)繪制 177
7.4.2 筆、畫(huà)刷、填充繪制 180
7.4.3 字體和文本 184
7.4.4 光柵操作 186
7.4.5 雙緩沖機制 188
第8章 綜合編程實(shí)例 190
8.1 撲克洗牌 190
8.2 二叉樹(shù)重建可視化 194
8.3 L-System分形樹(shù)建模 204
8.4 迷宮問(wèn)題 218
參考文獻 226