新書推薦:
《
让内的理性主义 发现无意识之旅
》
售價:HK$
66.1
《
苏美尔文明(方尖碑)
》
售價:HK$
132.2
《
知命不惧:从芝诺到马可·奥勒留的生活艺术
》
售價:HK$
110.9
《
Zemax光学设计从基础到实践
》
售價:HK$
132.2
《
全球化的黎明:亚洲大航海时代
》
售價:HK$
109.8
《
危局
》
售價:HK$
84.0
《
穿裙子的士:叶嘉莹传
》
售價:HK$
53.8
《
肌肤会说话 : 听懂自己肌肤的语言,呵护肌肤
》
售價:HK$
98.6
|
編輯推薦: |
◎本书特点(1)结构安排合理。概念讲解通俗易懂,内容安排和案例选取都是先易后难,循序渐进,注重学习知识的连贯性。
(2)注重基础知识的讲解。在数据结构部分首先是对基础知识和概念的介绍,然后给出相应的基本运算算法实现,后面是提供典型案例和考研试题的讲解及算法实现。
(3)涵盖个人学习经验总结。在讲解知识点、分析案例及调试程序时,加入了作者自己学习过程中的经验总结,指出了初学者常犯的错误,避免读者少走弯路。
(4)案例很多都来自全国著名高校(清华大学、哈尔滨工业大学、西北大学、华中科技大学、西安电子科技大学、北京航空航天大学、上海大学)的考研题目,并给出了完整的算法实现。
(5)提供完整代码实现,所有代码均在VC 6.0以上调试通过。
|
內容簡介: |
本书主要讲解了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 求Cn,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
|
|