第1篇C语言函数 2
第1章ctype.h库函数 2
1.1字符测试函数 2
1.1.1 isalnum函数——判断是否是英文字母或数字字符 2
1.1.2 isalpha函数——判断是否为英文字母 3
1.1.3 isascii函数——判断ASCII码是否位于0~127之间 4
1.1.4 iscntrl函数——判断是否是控制字符 6
1.1.5 isdigit函数——判断是否是数字字符 7
1.1.6 isgraph函数——判断是否是可打印字符(不包括空格) 8
1.1.7 islower函数——判断是否是小写英文字母 9
1.1.8 isprint函数——判断是否是可打印字符(包括空格) 11
1.1.9 ispunct函数——判断是否是标点符号 12
1.1.10 isspace函数——判断是否是空白符 13
1.1.11 isxdigit函数——判断是否是十六进制字符 14
1.2字符转换函数 16
1.2.1 tolower函数——将大写英文字母转换为小写英文字母 16
1.2.2 toupper函数——将小写英文字母转换为大写英文字母 17
1.2.3 toascii函数——将字符转换为ASCII码 18
第2章Stdio.h库函数 20
2.1字符输入/输出函数 20
2.1.1 getch函数和getche函数——从键盘读入一个字符 20
2.1.2 getchar函数——接受一个字符并显示在屏幕上 21
2.1.3 gets函数——读取一个字符串 23
2.1.4 putchar函数——在屏幕上输出一个字符 24
2.1.5 puts函数——在屏幕上输出一个字符串 25
2.2格式化输入/输出函数 26
2.2.1 printf函数——格式化输出数据 26
2.2.2 scanf函数——格式化输入数据 29
2.2.3 sprintf函数——输出格式化数据到指定的数组中 32
2.2.4 sscanf函数——从字符串读取格式化数据 33
2.2.5 vprintf函数——在屏幕上输出格式化变长参数列表 34
2.2.6 vscanf函数——从键盘读取格式化数据 36
2.3文件输入/输出函数 37
2.3.1 fgetc函数和getc函数——从文件中读取一个字符 37
2.3.2 fgets 函数——从文件中读取多个字符 39
2.3.3 fprintf函数——格式化输出数据到指定的文件中 40
2.3.4fputc函数和putc函数——输出一个字符到指定的文件中 41
2.3.5fputs函数——输出一个字符串到指定的文件中 42
2.3.6 fread函数——从文件中读取一个数据块 43
2.3.7 fscanf函数——从文件中读取格式化数据 45
2.3.8 vfprintf函数——输出格式化数据到指定的文件 47
2.3.9 vfscanf函数——从文件中读取格式化数据 48
2.3.10 fwrite函数——向文件中写入数据块 50
2.4文件定位函数 51
2.4.1 fseek函数——移动文件位置指针到指定位置 52
2.4.2 ftell函数——得到文件位置指针的当前值 53
2.4.3 rewind函数——将文件位置指针移动到文件的开头 55
2.5文件存取操作函数 56
2.5.1 fclose函数——关闭文件 56
2.5.2 fflush函数——将缓冲区的内容写入文件 57
2.5.3 fopen函数——打开文件 58
2.5.4 remove函数——删除文件 60
2.5.5 rename函数——重命名文件 61
2.6文件错误控制函数 62
2.6.1 clearerr函数——清除文件中的错误标志 62
2.6.2 feof函数——是否到达了文件末尾 64
2.6.3 ferror函数——检查文件操作是否出现了错误 65
2.7文件输入/输出函数综合应用举例 66
第3章string.h库函数 74
3.1字符串比较函数 74
3.1.1 memcmp函数和memicmp函数——比较两个字符串 74
3.1.2 strcmp函数和stricmp函数——比较两个字符串 76
3.1.3 strncmp函数strnicmp函数——比较两个字符串 77
3.2字符串复制函数 78
3.2.1 memcpy函数——复制n个字节到另一个数组 78
3.2.2 memmove函数——复制n个字节到数组中(可重叠) 80
3.2.3 strcpy函数——字符串复制 81
3.2.4 strncpy函数——复制n个字符到目的字符数组 82
3.3字符串连接函数 84
3.3.1 strcat函数——连接两个字符串 84
3.3.2 strncat函数——将字符串1的前n个字符连接到字符串 85
3.4字符串查找函数 86
3.4.1 memchr函数——在内存块中查找字符 86
3.4.2 strchr函数——在字符串中查找字符 88
3.4.3 strstr函数——查找字符串 89
3.4.4 strtok函数——分解字符串 90
3.5字符串转换函数 91
3.5.1 strlwr函数——将大写字母转换为小写字母 91
3.5.2 strrev函数——将字符串逆置 93
3.5.3 strupr函数——将小写字母转换为大写字母 94
3.6其他函数 95
3.6.1 memset函数——用指定的字符填充字符串 95
3.6.2 strlen函数——求字符串的长度 96
3.7字符串函数综合应用举例 97
第4章stdlib.h库函数 103
4.1字符串转换函数 103
4.1.1 atof函数——将字符串转换为双精度浮点数 103
4.1.2 atoi函数——将字符串转换为整数 104
4.1.3 atol函数——将字符串转换为长整型数据 106
4.1.4 itoa函数——将整数转换为字符串 107
4.1.5 ltoa函数——将长整型数转换为字符串 108
4.2动态内存管理函数 110
4.2.1 calloc函数——分配内存空间 110
4.2.2 free函数——释放内存单元 111
4.2.3 malloc函数——动态分配内存单元 113
4.2.4 realloc函数——重新分配内存单元 114
4.2.5动态内存管理函数综合应用举例 116
4.3随机数生成函数 121
4.3.1 rand函数——产生伪随机数 121
4.3.2 random函数和randomize函数——产生随机数 122
4.3.3 srand函数——初始化随机数发生器 123
4.4查找和排序函数 124
4.4.1 bsearch函数——折半查找 124
4.4.2 qsort函数——快速排序 126
4.4.3随机数生成函数和查找排序函数综合应用举例 128
4.5过程控制函数 130
4.5.1 abort函数——终止当前的进程 131
4.5.2 exit函数——退出当前的程序 132
4.5.3 system函数——执行系统命令 134
第5章math.h库函数 136
5.1三角函数 136
5.1.1 cos函数——求x的余弦值 136
5.1.2 sin函数——求x的正弦值 137
5.1.3 tan函数——求x的正切值 139
5.1.4 acos函数——求x的反余弦值 140
5.1.5 asin函数——求x的反正弦值 141
5.1.6 atan函数——求x的反正切值 142
5.2指数和对数函数 144
5.2.1 exp函数——求以自然数e为底的指数值 144
5.2.2 log函数——求自然对数 145
5.2.3 log10函数——求对数 146
5.3幂指数和开方函数 147
5.3.1 pow函数——求baseexp的值 147
5.3.2 pow10函数——求1 0exp的值 148
5.3.3 sqrt函数——求x的平方根 149
5.4绝对值函数 150
5.4.1 abs函数——求整数的绝对值 150
5.4.2 fabs函数——求浮点数的绝对值 151
5.4.3 labs函数——返回x的绝对值 152
5.5其他函数 153
5.5.1 floor函数——求不大于x的最大整数 153
5.5.2 fmod函数——返回x/y的余数 154
5.5.3 frexp函数——将浮点数分解为尾数和指数 155
5.5.4 hypot函数——由两个直角边得到斜边 157
5.5.5 modf函数——将浮点数分解为整数部分和小数部分 158
5.5.6 poly函数——计算x的n次多项式的值 159
5.6数学函数综合应用举例 160
第6章conio.h库函数 167
6.1字符输入/输出函数 167
6.1.1 cgets函数——从控制台接受输入的字符串 167
6.1.2 cprintf函数——输出格式化数据到文本窗口中 168
6.1.3 cputs函数——输出字符串到当前文本窗口 170
6.1.4 cscanf函数——从控制台接受格式化数据 171
6.2屏幕操作函数 172
6.2.1 window函数——建立字符窗口 172
6.2.2 clrscr函数——清除字符窗口中的所有字符 173
6.2.3 gettextinfo函数——得到文本模式的显示信息 174
6.2.4 gotoxy函数——将光标移动到指定的位置 176
6.2.5 wherex函数和wherey函数——返回当前窗口下光标的x和y坐标 177
6.3文本属性函数 178
6.3.1 textattr函数——设置文本的前景颜色和背景颜色 178
6.3.2 textbackground函数——设置字符屏幕的背景颜色 180
6.3.3 textcolor函数——设置字符颜色 181
6.3.4 textmode函数——设置字符屏幕的屏显模式 183
6.4文本复制函数 185
6.4.1 gettext函数——将矩形区域的文本复制到内存中 185
6.4.2 movetext函数——将矩形区域内文本复制到另一个矩形区域 187
6.4.3 puttext函数——将内存中的文本复制到矩形区域 188
第7章graphics.h库函数 190
7.1图形模式函数 190
7.1.1 initgraph函数——初始化图形系统 190
7.1.2 detectgraph函数——确定图形适配器的类型 193
7.1.3 getgraphmode函数——得到当前的图形模式 195
7.1.4 getmodename函数——得到当前的图形驱动器名字 197
7.2图形属性函数 198
7.2.1 getbkcolor函数——返回图形的背景颜色 198
7.2.2 getcolor函数——返回当前图形的线条颜色 200
7.2.3 getlinesettings函数——得到当前的线条模式 201
7.2.4 getmaxcolor函数——返回当前屏幕模式下最大有效颜色值 203
7.2.5 getpixel函数——返回指定点的像素颜色 204
7.2.6 putpixel函数——设置指定点的像素颜色 206
7.2.7 setbkcolor函数——设置屏幕的背景颜色 207
7.2.8 setcolor函数——设置图形线条的颜色 208
7.3画点类函数 210
7.3.1 getmaxx函数和getmaxy函数——返回当前图形模式下最大有效x值和y值 210
7.3.2 getx函数和gety函数——返回图形屏幕上当前位置的x值和y值 211
7.3.3 moveto函数——在视口中移动当前位置到指定点 212
7.3.4 moverel函数——根据增量移动当前位置 214
7.4画线类函数 215
7.4.1 arc函数——画圆弧 215
7.4.2 circle函数——画圆 217
7.4.3 drawpoly函数——绘制多边形 218
7.4.4 ellipse函数——绘制椭圆弧 220
7.4.5 line函数、lineto函数和linerel函数——画线 221
7.4.6 pieslice函数——画扇形 223
7.4.7 rectangle函数——绘制矩形 225
7.5图形填充函数 226
7.5.1 bar函数和bar3d函数——画填充的矩形条 226
7.5.2 fillellipse函数——画填充的椭圆 228
7.5.3 fillpoly函数——画填充的多边形 229
7.5.4 floodfill函数——为指定点所在图形设置填充色 231
7.5.5 getfillpattern函数——得到用户自定义的填充模式 232
7.5.6 getfillsettings函数——获取当前填充模式和填充色 234
7.5.7 setfillpattern函数——设置用户自定义的填充模式 236
7.5.8 setfillstyle函数——设置填充模式和颜色 237
7.6图形模式下的文本函数 239
7.6.1 outtext函数和outtextxy函数——输出一个字符串 239
7.6.2 settextjustify函数——设置字符的对齐方式 240
7.6.3 settextstyle 函数——设置字符串的字体类型、输出方向和字符大小 243
7.6.4 setusercharsize函数——设置用户自定义的字符大小 245
7.6.5 textheight函数和textwidth函数——返回字符串的高度和宽度 246
7.7屏幕操作函数 248
7.7.1 cleardevice函数和clearviewport函数——清除屏幕和视口 248
7.7.2 closegraph函数——关闭图形系统 250
7.7.3 getimage函数——将屏幕图形复制到指定的内存中 251
7.7.4 imagesize函数——返回屏幕图像的字节数 252
7.7.5 putimage函数——将内存块中的图像复制到指定的屏幕位置 254
7.7.6 setviewport函数——设置当前视口 256
7.8图形函数综合应用举例 257
第8章std arg.h库函数 266
8.1 va arg宏 266
8.2 va end宏 268
8.3 va start宏 269
8.4应用举例 271
第9章time.h库函数 274
9.1时间操作函数 274
9.1.1 clock函数——返回CPU时钟计时单元 274
9.1.2 difftime函数——计算两个时钟之间的间隔 275
9.1.3 time函数——得到当前的时间 277
9.2时间格式转换函数 278
9.2.1 asctime函数——将时间格式转换为字符串形式 278
9.2.2 ctime函数——将时间转换为字符串形式 280
9.2.3 gmtime函数——返回(格林尼治)时间结构的指针 281
9.2.4 localtime函数——返回指向时间结构的指针 282
9.2.5 mktime函数——将struct tm格式的时间转换为秒 283
9.2.6 strftime函数——将时间格式化为字符串 284
第10章dir.h库函数 287
10.1目录操作函数 287
10.1.1 chdir函数——设置当前工作目录 287
10.1.2 fnmerge函数和fnsplit函数——构造文件名和分解文件名 288
10.1.3 getcurdir函数——获取当前工作目录 291
10.1.4 getcwd函数——获取当前工作目录的全路径名 292
10.1.5 getdisk函数——返回当前驱动器代码 293
10.1.6 mkdir函数——建立一个目录 294
10.1.7 mktemp函数——建立文件名 296
10.1.8 rmdir函数——删除指定的目录 297
10.1.9 setdisk函数——设置当前工作驱动器 299
10.2文件查找函数 300
10.2.1 findfirst函数和findnext函数——搜索磁盘文件 300
10.2.2 searchpath函数——查找文件 302
第11章 其他常用函数 304
11.1 abort函数——终止程序运行 304
11.2 exit函数——正常结束程序 305
11.3 sleep函数——使程序暂停运行 307
11.4 system函数——执行DOS命令 308
11.5 bioskey函数——检查按下键盘中的按键状态 309
11.6 geninterrupt函数——产生一个软中断 312
11.7 int86函数——执行软中断 314
第2篇C++输入/输出流 318
第12章ios_base类 318
12.1 flags函数——得到/设置流的标志 319
12.2 setf函数和unsetf函数——设置/清除流的格式标志 321
12.3 precision函数——得到/设置浮点数的精度 323
12.4 width函数——得到/设置域宽 324
第13章iostream类 326
13.1 get函数——无格式的输入操作 328
13.2 getline函数——接受输入的字符串 330
13.3 ignore函数——忽略指定的字符 332
13.4 peek函数——从流中接受输入的字符 333
13.5 read函数——读取一个字符块 334
13.6 putback函数——将读取的字符返回给输入流 335
13.7 put函数——输出字符 337
13.8 fill函数——得到/设置填充字符 338
第14章 文件流类 340
14.1 ifstream构造函数——创建输入流对象 341
14.2 rdbuf函数——返回指向filebuf的指针 342
14.3 is_ open函数——检测文件是否被打开 344
14.4 open函数与close函数——打开和关闭文件 345
14.5 read函数与write函数——从流中读取数据和向流中写入数据 347
14.6 seekg函数与tellg函数——设置/得到流的位置指针位置 349
14.7 seekp函数与tellp函数——设置/得到文件的位置指针位置 350
14.8 flush函数——刷新输出流缓冲区 352
第15章string类 354
15.1字符串运算符函数 354
15.1.1字符串构造函数——构造字符串对象 354
15.1.2=运算符函数——将字符串的内容复制给新字符串对象 356
15.1.3+和+=运算符函数——连接字符串 358
15.1.4=、!=、<、>、<=、\>=运算符函数——比较字符串 359
15.1.5[]运算符函数——返回string中的某个字符 361
15.1.6 at函数——返回string中的某个字符(范围检测) 363
15.2字符串迭代器 364
15.2.1 begin函数和end函数——返回第一个字符和最后一个字符的迭代器 364
15.2.2 rbegin函数和rend函数——返回相对于begin函数和end函数的反向迭代器 365
15.3字符串长度 367
15.3.1 length函数和size函数——返回字符个数 367
15.3.2 max_size函数——返回string能容纳的最大字符个数 368
15.3.3 capacity函数——返回分配的存储空间大小 369
15.3.4 resize函数——设置string的长度 370
15.3.5 reserve函数——为string对象预留空间 372
15.3.6 empty函数——判断string是否为空 373
15.4字符串操作 374
15.4.1 insert函数——判断string是否为空 374
15.4.2 erase函数——清除string中的字符 376
15.4.3 replace函数——置换string中的字符 378
15.4.4 swap函数——交换两个字符串的内容 380
15.4.5 c str函数——返回与string等效的字符串 381
15.4.6 copy函数——取出string对象中的指定字符 383
15.4.7 find函数——在string对象中查找字符串 384
15.4.8 find_first_of函数和find_last_of函数——在string中 查找字符串(部分匹配) 385
15.4.9 substr函数——生成string的子串 387
第3篇 标准容器 390
第16章vector类 390
16.1构造类函数 390
16.1.1 vector的构造函数和析构函数——创建vector对象和释放vector对象 390
16.1.2 operator=函数——复制vector中的内容 392
16.2迭代器函数 394
16.2.1 begin函数和end函数——返回第一个元素和最后一个元素的位置 394
16.2.2 rbegin函数和rend函数——返回与最后一个元素和第一个元素相关的迭代器 395
16.3容量类函数 396
16.3.1 size函数、max_ size函数和capacity函数——返回元素实际个数、能容纳的最大元素个数和分配的存储空间大小 397
16.3.2 empty函数——判断vector是否为空 398
16.3.3 resize函数——调整vector容器的大小 399
15.3.4 reserve函数——重新为vector容器分配内存空间 401
16.4存取类函数 402
16.4.1 operator[]函数——存取vector中的元素 402
16.4.2 at函数——存取vector中的元素(进行越界检查) 404
16.4.3 front函数和back函数——返回vector中的第一个元素和最后一个元素 405
16.5操作类函数 407
16.5.1 assign函数——为vector中的元素赋值 407
16.5.2 push back函数——在vector的末尾追加新元素 409
16.5.3 pop_ back函数——删除vector中的最后一个元素 410
16.5.4 inse函数——在vector中插入元素 411
15.5.5 erase函数——删除vector中指定的元素 413
16.5.6 clear函数——清除vector中的元素 414
16.5.7 swap函数——生成string的子串 416
第17章deque类 418
17.1构造类函数 418
17.1.1 deque的构造函数和析构函数——创建deque对象 和释放deque对象 418
17.1.2 operator=函数——复制deque中的内容 420
17.2迭代器函数 422
17.2.1 begin函数和end函数——返回第一个元素和最后一个元素的位置 422
17.2.2 rbegin函数和rend函数——返回相对于begin函数和end函数的反向迭代器 423
17.3容量类函数 425
17.3.1 size函数和max size函数——返回元素实际个数和能容纳的最大元素个数 425
17.3.2 empty函数——判断deque是否为空 426
17.3.3 resize函数——调整deque容器的大小 427
17.4存取类函数 429
17.4.1 operator[]函数——存取deque中的元素 429
17.4.2 at函数——存取deque中的元素(进行越界检查) 430
17.4.3 front函数和back函数——返回deque中的第一个元素和最后一个元素 432
17.5操作类函数 433
17.5.1 assign函数——为deque中的元素赋值 434
17.5.2 push_back函数——在deque的末尾追加新元素 435
17.5.3 push _ont函数——在deque的开始位置插入新元素 436
17.5.4 pop_back函数——移除deque中的最后一个元素 438
17.5.5 pop _ont函数——移除deque中的第一个元素 439
17.5.6 insert函数——在deque的指定位置插入元素 441
17.5.7 erase函数——删除deque中指定的元素 443
17.5.8 clear函数——清除deque中的所有元素 444
17.5.9 swap函数——交换两个deque中的内容 445
第18章liSt类 447
18.1构造类函数 447
18.1.1 list的构造函数和析构函数——创建list对象和释放list对象 447
18.1.2 operator=函数——复制list中的内容 450
18.2迭代器函数 451
18.2.1 begin函数和end函数——返回第一个元素和最后一个元素的位置 451
18.2.2 rbegin函数和rend函数——返回相对于begin函数和end函数的反向迭代器 453
18.3容量类函数 454
18.3.1 size函数和max size函数——返回元素实际个数和能容纳的最大元素个数 454
18.3.2 empty函数——判断list是否为空 456
18.3.3 resize函数——调整list容器的大小 457
18.4存取类函数 458
18.4.1 front函数——返回list中的第一个元素 458
18.4.2 back函数——返回list中的最后一个元素 459
18.5操作类函数 461
18.5.1 assign函数——为list中的元素赋值 461
18.5.2 push_ back函数——在list的末尾追加新元素 462
18.5.3 push_front函数——在list的开始位置插入新元素 463
18.5.4 pop_ back函数——移除list中的最后一个元素 465
18.5.5 pop _front函数——移除list中的第一个元素 466
18.5.6 inse函数——在list的指定位置插入元素 468
18.5.7 erase函数——删除list中指定的元素 469
18.5.8 clear函数——清除list中的所有元素 471
18.5.9 swap函数——交换两个list中的内容 473
18.5.10 splice函数——将一个list容器中的元素移动到另一个list容器 474
18.5.11 remove函数——从list中移除指定的元素 476
18.5.12 remove if函数——交换两个list中的内容 477
18.5.13 unique函数——删除list中重复的元素 479
18.5.14 merge函数——将两个list链表合并 481
18.5.15 sort函数——对list中的元素排序 483
18.5.16 reverse函数——将list中的元素逆置 484
第19章stack类 486
19.1构造类函数 486
19.2容量类函数 488
19.2.1 empty函数——判断stack是否为空 489
19.2.2 size函数——返回stack中的元素个数 490
19.3存取类函数 491
19.4操作类函数 492
19.4.1 push函数——在stack的栈顶位置插入新元素 492
19.4.2 pop函数——移除stack的栈顶元素 494
第20章queue类 496
20.1构造类函数 496
20.2容量类函数 498
20.2.1 empty函数——判断queue是否为空 498
20.2.2 size函数——返回queue的大小 499
20.3存取类函数 500
20.3.1 front函数——返回queue的队头元素 500
20.3.2 back函数——返回queue的队尾元素 502
20.4操作类函数 503
20.4.1 push函数——在queue队尾插入新元素 503
20.4.2 pop函数——移除queue的队头元素 504
第21章set类 506
21.1构造类函数 506
21.2迭代器类函数 508
21.2.1 begin函数与end函数——返回set的第一个元素和最后一个元素的迭代器 508
21.2.2 rbegin函数与rend函数——返回set中的第一个元素和最后一个元素的反向迭代器 509
21.3容量类函数 511
21.3.1 empty函数——判断set是否为空 511
21.3.2 size函数——返回set的大小 512
21.3.3 max size函数——返回set能容纳的最大元素个数 513
21.4操作类函数 515
21.4.1 insert函数——在set中插入新元素 515
21.4.2 swap函数——交换两个 set中的内容 516
21.4.3 erase函数——清除set中的元素 518
21.4.4 clear函数——清空set中的元素 520
21.4.5 find函数——查找set中的元素 521
21.4.6 count函数——统计set中某一个元素的个数 522
21.4.7 lower bound函数与upper bound函数——返回set中元素下界和上界的迭代器 524
20.4.8 equal_ range函数——返回set中元素x的边界 525
第22章map类 527
22.1构造类函数 527
22.1.1 map的构造函数和析构函数——创建map对象和释放map对象 528
22.1.2 map的赋值运算符——通过一个map对象为另一个map对象赋值 529
22.2迭代器类函数 530
22.2.1 begin函数和end函数——返回第一个元素的位置和最后一个元素的后一个位置 531
22.2.2 rbegin函数和rend函数——返回一个指向map中最后一个元素的反向迭代器和第一个元素之前的反向迭代器 532
22.3容量类函数 533
22.3.1 empty函数——判断map是否为空 533
22.3.2 size函数——返回map容器中的元素个数 535
22.3.3 max_ size函数——返回map容器能容纳的最大元素个数 536
22.4存取类函数 537
22.5操作类函数 538
22.5.1 insert函数——在map中插入新元素 539
22.5.2 erase函数——移除map中的元素 540
22.5.3 swap函数——交换两个map中的内容 542
22.5.4 clear函数——清除map中的所有元素 544
22.5.5 find函数——查找map中的元素 545
22.5.6 count函数——统计map中某个元素关键字的个数 547
第4篇算法 550
第23章 排序算法 550
23.1插入排序 550
23.1.1直接插入排序 550
21.1.2折半插入排序 553
23.1.3希尔排序 556
23.2交换排序 559
23.2.1冒泡排序 559
23.2.2快速排序 564
23.3选择排序 569
23.2.1简单选择排序 569
23.3.2堆排序 574
23.4归并排序 581
23.5基数排序 584
第24章 查找算法 592
24.1基于线性表的查找 592
24.1.1顺序查找 592
24.1.2折半查找 594
24.1.3分块查找 598
24.2基于树的查找 602
24.2.1基于二叉排序树的查找操作 602
24.2.2基于二叉排序树的插入操作 604
24.3哈希表的查找 608
24.3.1哈希表的构造 608
24.3.2处理冲突的方法 610
第25章 递推算法 617
25.1顺推法 617
25.1.1斐波那契数列 617
25.1.2将十进制数转换为二进制数 620
25.1.3母牛生小牛问题 622
25.1.4杨辉三角 624
25.2逆推法 626
25.2.1猴子摘桃 626
25.2.2该存多少钱 627
第26章 迭代算法 629
26.1精确迭代法 629
26.1.1最大公约数与最小公倍数 629
26.1.2十进制整数转换为二进制整数 630
26.1.3质因数的分解 632
26.1.4谷角猜想 633
26.2近似迭代法 634
26.2.1求一个数的平方根 634
26.2.2二分法 636
26.2.3牛顿迭代法 639
26.2.4求定积分 642
第27章 递归算法 646
27.1简单递归 646
27.1.1求n的阶乘 646
27.1.2斐波那契数列 650
27.1.3求n个数中的最大者 651
27.1.4数制转换 653
27.1.5求最大公约数 654
27.2复杂递归 655
27.2.1颠倒字符串 656
27.2.2和式分解 657
27.2.3台阶问题 660
27.2.4汉诺塔问题 663
27.2.5大牛生小牛问题 665
第28章 枚举算法 668
28.1判断n是否能被3、 5、 7整除 668
28.2百钱买百鸡 671
28.3五猴分桃 673
28.4打印水仙花数 676
28.5填数游戏 677
28.6谁在说谎 679
第29章 贪心算法 682
29.1找零钱问题 682
29.2哈夫曼编码 684
29.3加油站问题 692
第30章 回溯算法 695
30.1组合问题 695
30.2填字游戏 697
30.3装箱问题 703
第31章 矩阵算法 708
31.1打印魔方阵 708
31.2打印拉丁方阵 711
31.3打印蛇形方阵 713
31.4打印内螺旋矩阵 716
31.5打印逆螺旋矩阵 718
31.6打印外螺旋矩阵 720
31.7将矩阵旋转90度 722