內容簡介

本書主要講解了C、C++常見算法的算法思想和使用。其中包括排序算法、查找算法、迭代算法、遞推算法、遞歸算法、枚舉算法、貪心算法、回溯算法、矩陣算法。

本書內容全面、講解詳細、配合圖表重難點突出、代碼完整,有分明的層次架構。可以作為計算機專業學生、教師、工程技術人員的參考用書、案頭必備書,方便查閱。

陳銳,高級程序員,西北大學計算機應用技術碩士,中國計算機學會CCF會員。從事數據結構與算法和自然語言處理研究工作。著作有:《零基礎學數據結構》、《C語言入門教程》、《C語言從入門到精通》等書。
 

目錄

Chapter 1 線性表 1
1-1 順序表示的線性表——
順序表 1
001 合並兩個線性表中的元素 6
002 fgetc函數和getc函數 9
003 求兩個線性表的差集 12
004 分拆順序表:左邊的元素小於等於0,右邊的大於0 14
005 計算兩個任何長度的
整數之和 17
1-2 鏈式表示的線性表之一——
單鏈表 19
006 求單鏈表的差集 27
007 合並兩個單鏈表 32
1-3 鏈式表示的線性表之二——
循環單鏈表 36
008 分拆循環單鏈表 36
009 構造三個單循環鏈表 40
1-4 鏈式表示的線性表之三——
雙向鏈表 44
010 雙向鏈表的建立與插入
操作 47
011 約瑟夫問題(雙向鏈表) 51
Chapter 2 棧 55
2-1 順序表示的棧——
順序棧 55
001 入棧和出棧 58
002 共享棧的入棧和出棧操作 60
003 求C(n,m)的值 65
2-2 鏈式表示的棧——
鏈式棧 69
004 進制轉換 73
005 括號匹配 75
006 求算術表達式的值 79
007 判斷字符串是否中心對稱 87
Chapter 3 隊列 91
3-1 順序表示的隊列——
順序隊列 91
001 入隊和出隊 96
002 舞伴配對 100
003 輪渡管理 103
3-2 鏈式表示的隊列——
鏈式隊列 107
004 隊列在楊輝三角中的應用 111
005 判斷是否為回文 114
Chapter 4 串 119
4-1 順序表示的串——
順序串 119
001 串的基本操作 125
002 將浮點型數轉換為對應
的字符串 130
003 求最長公共子串 132
004 求等值子串 135
4-2 串的模式匹配 137
005 模式匹配 143
Chapter 5 數組 149
5-1 數組的定義及表示 149
001 查找第k小元素 151
002 將奇數移動到偶數的左邊 153
5-2 二維數組(矩陣) 155
003 將矩陣旋轉90度 155
004 打印魔方陣 157
005 打印螺旋矩陣 160
006 打印拉丁方陣 162
007 打印蛇形方陣 164
5-3 數組的壓縮存儲 166
008 上三角陣的壓縮存儲 169
5-4 稀疏矩陣的壓縮存儲 172
009 稀疏矩陣的相加 176
Chapter 6 廣義表 181
6-1 廣義表的定義及頭尾
鏈表表示 181
001 創建廣義表 183
6-2 廣義表的擴展線性
鏈表表示 190
002 創建廣義表並求其深度
和廣度 191
Chapter 7 樹 197
7-1 樹與二叉樹 197
001 根據廣義表形式創建
二叉樹 207
002 建立二叉樹 211
7-2 二叉樹的遍歷 214
003 先序非遞歸遍歷二叉樹 215
004 層次遍歷二叉樹 219
005 輸出樹的各條邊 221
006 由中序和后序序列構造
二叉樹 225
7-3 二叉樹的應用 229
007 交換二叉樹的左右子樹 229
008 判斷是否為完全二叉樹 233
009 求結點的個數 239
010 求二叉樹的高度和寬度 242
011 求根結點到任一結點之間
的路徑 246
7-4 哈夫曼樹 251
012 構造哈夫曼樹 253
Chapter 8 圖 259
8-1 圖的基本概念 259
001 用鄰接矩陣表示法創建
有向圖 264
002 利用鄰接表創建有向圖 267
003 把鄰接矩陣轉換為鄰接表 271
8-2 圖的遍歷 276
004 判斷有向圖中是否
存在回路 278
005 深度遍歷有向圖 281
006 圖的廣度優先遍歷 286
007 判斷有向圖中是否有根 291
008 求距離頂點v0的最短
長度為k的所有頂點 296
009 判斷頂點u和頂點v是否
存在簡單路徑 301
010 判斷圖中是否為一棵樹 307
Chapter 9 排序算法 313
9-1 插入排序 313
001 直接插入排序 313
002 折半插入排序 316
003 希爾排序 321
9-2 交換排序 324
004 冒泡排序 324
005 快速排序 328
9-3 選擇排序 333
006 簡單選擇排序 333
007 堆排序 338
9-4 歸並排序 345
008 歸並排序 345
9-5 基數排序 348
009 基數排序 348
Chapter 10 查找算法 357
10-1 基於線性表的查找 357
001 順序查找 357
002 折半查找 359
003 分塊查找 363
10-2 基於樹的查找 367
004 二叉排序樹的創建和
插入操作 367
10-3 哈希表的查找 372
005 哈希表的構造與查找 372
Chapter 11 遞推算法 379
11-1 順推法 379
001 斐波那契數列(遞推法) 379
002 將十進制數轉換為
二進制數 382
003 母牛生小牛問題 384
004 楊輝三角 386
11-2 逆推法 388
005 猴子摘桃 388
006 該存多少錢 389
Chapter 12 迭代算法 391
12-1 精確迭代法 391
001 最大公約數與最小
公倍數 391
002 十進制整數轉換為
二進制整數 393
003 質因數的分解 394
004 角谷猜想 395
12-2 近似迭代法 397
005 求一個數的平方根 397
006 二分法 398
007 牛頓迭代法 401
008 求定積分 404
Chapter 13 遞歸算法 409
13-1 簡單遞歸 409
001 求n的階乘 409
002 斐波那契數列(遞歸法) 413
003 求n個數中的最大者 415
004 數制轉換 416
005 求最大公約數 417
13-2 復雜遞歸 419
006 顛倒字符串 419
007 和式分解 420
008 台階問題 423
009 漢諾塔問題 426
010 大牛生小牛問題 429
Chapter 14 枚舉算法 431
001 判斷n是否能被3、5、7
整除 431
002 百錢買百雞 434



003 五猴分桃 436
004 打印水仙花數 439
005 填數游戲 440
006 誰在說謊 442
Chapter 15 貪心算法 445
001 找零錢問題 445
002 哈夫曼編碼 448
003 加油站問題 454
Chapter 16 回溯算法 457
001 組合問題 457
002 填字游戲 460
003 裝箱問題 466
Chapter 17 實用算法 471
001 大小寫金額轉換 471
002 計算7的34次方 476
003 一年中的第幾天 478
004 求算術表達式的值 481
005 一元多項式的乘法 489
006 大整數乘法 496
附錄 程序調試 499
參考文獻 514
 

每次寫書實際花費的時間遠遠超過計划的時間,雖然花費很多時間去修改、完善,但對於書中文字的表述、例子的選取、講解及算法的實現總感覺還不夠滿意,也許這不是一次能達到的,只能期待下一次改版再做修訂。
網路書店 類別 折扣 價格
  1. 新書
    87
    $287