图书介绍

C/C++开发专家:C++数据结构原理与经典问题求解

  • 左飞 著
  • 出版社: 电子工业出版社
  • ISBN:9787121073212
  • 版次:1
  • 商品编码:10066944
  • 包装:平装
  • 开本:16开
  • 出版时间:2008-10-01
  • 用纸:胶版纸
  • 页数:531
  • 正文语种:中文

手机扫码下载

手机扫码下载

赞助商链接

图书目录

第1章 绪论t1
1.1 数据与数据结构t2
1.1.1 数据及其类型t2
1.1.2 数据结构简介t4
1.2 算法t6
1.2.1 算法的概念t6
1.2.2 算法的分析t8
1.2.3 算法的设计t12
1.3 C++语言简介t18
1.3.1 C++的产生与发展t18
1.3.2 C++与面向对象思想t20
1.3.3 C++中的类和对象t23
1.4 本章小结t28

第2章 C++编程基础t29
2.1 开始C++编程t30
2.1.1 输入输出t30
2.1.2 预处理t38
2.1.3 名字空间t44
2.2 深入的类编程t50
2.2.1 访问控制t50
2.2.2 初始化与清除t53
2.2.3 动态创建对象t57
2.2.4 友元函数t60
2.2.5 拷贝构造函数t61
2.3 丰富的C++特性t65
2.3.1 常量t65
2.3.2 函数重载t68
2.3.3 运算符重载t71
2.3.4 异常处理t77
2.4 代码重用机制t79
2.4.1 继承t80
2.4.2 多态t87
2.4.3 模板t90
2.5 标准模板库t93
2.5.1 STL简介t94
2.5.2 STL构成t95
2.5.3 STL的不同版本t97
2.6 本章小结t98

第3章 指针、数组与字符串t99
3.1 指针t100
3.1.1 指针的概念t100
3.1.2 指针的语法t102
3.1.3 函数与参数传递t103
3.2 数组t108
3.2.1 数组定义与初始化t109
3.2.2 数组与指针t113
3.2.3 数组的抽象数据类型t116
3.2.4 大整数乘法问题t120
3.2.5 荷兰国旗问题t121
3.3 字符串t124
3.3.1 C++中的字符串t124
3.3.2 字符串抽象数据类型t126
3.3.3 字符串的匹配算法t128
3.3.4 字符串指数问题t141
3.4 动态内存管理t142
3.4.1 关键词new和deletet143
3.4.2 避免内存错误t146
3.5 本章小结t152

第4章 链表t153
4.1 单向链表t154
4.1.1 单向链表的结构t154
4.1.2 单向链表类的实现t155
4.1.3 有序链表的合并t162
4.1.4 多项式加法问题t163
4.2 单向循环链表t164
4.2.1 单向循环链表的结构t164
4.2.2 单向循环链表类的实现t166
4.2.3 约瑟夫问题t169
4.2.4 魔术师发牌问题t170
4.2.5 拉丁方阵问题t172
4.3 双向循环链表t173
4.3.1 双向循环链表的结构t173
4.3.2 双向循环链表类的实现t174
4.3.3 Vigenere加密问题t182
4.3.4 选美比赛问题t184
4.4 游标类的设计与实现t186
4.4.1 游标类的结构t186
4.4.2 游标类的实现t187
4.5 STL与链表t191
4.5.1 STL中链表类的接口t191
4.5.2 遍历t194
4.5.3 元素的插入与删除t196
4.6 本章小结t196

第5章 栈与队列t197
5.1 栈t198
5.1.1 栈的结构t198
5.1.2 栈的实现t199
5.1.3 括号匹配问题t203
5.1.4 停车场模拟问题t204
5.2 队列t208
5.2.1 队列的结构t208
5.2.2 队列的实现t210
5.2.3 舞伴问题t214
5.2.4 杨辉三角形问题t215
5.2.5 游程编码问题t216
5.3 优先级队列t218
5.3.1 优先级队列的结构t218
5.3.2 优先级队列的实现t220
5.4 STL中的栈与队列t222
5.4.1 STL中的stackt222
5.4.2 STL中的queuet224
5.4.3 STL中的priority_queuet226
5.5 本章小结t229

第6章 递归t231
6.1 递归的概念t232
6.1.1 递归的定义t232
6.1.2 应用递归的原则t235
6.1.3 递归和非递归的转化t240
6.2 分治法t243
6.2.1 分治法简述t243
6.2.2 汉诺塔问题t244
6.2.3 传染病问题t246
6.3 回溯法t250
6.3.1 回溯法简述t251
6.3.2 迷宫问题t251
6.3.3 八皇后问题t255
6.3.4 骑士周游问题t258
6.4 本章小结t265

第7章 树t267
7.1 树的概念t268
7.1.1 树的定义t268
7.1.2 树的术语t271
7.1.3 树的抽象数据类型t272
7.2 二叉树t273
7.2.1 二叉树的定义t273
7.2.2 二叉树的性质t275
7.2.3 二叉树的实现t276
7.2.4 二叉树的遍历t285
7.2.5 二叉树的线索化t289
7.3 树与森林t291
7.3.1 树的存储表示t291
7.3.2 树的实现t294
7.3.3 树与森林的遍历t298
7.3.4 森林与二叉树的转换t300
7.4 霍夫曼树t304
7.4.1 霍夫曼树的概念t304
7.4.2 霍夫曼树的构造方法t305
7.4.3 霍夫曼编码及其实现t307
7.5 堆t313
7.5.1 堆的概念t314
7.5.2 堆的建立t314
7.5.3 堆的操作t316
7.6 基于STL实现树结构t317
7.6.1 STL中的vectort317
7.6.2 STL中的mapt321
7.7 医院建模问题t323
7.8 本章小结t328

第8章 图t329
8.1 图的基本概念t330
8.1.1 图的定义t330
8.1.2 图的术语t331
8.1.3 图的运算t334
8.1.4 图的抽象数据类型t336
8.2 图的存储与表示t337
8.2.1 图的邻接矩阵表示t337
8.2.2 图的邻接表表示t339
8.2.3 两种表示法的比较t342
8.3 图的遍历t342
8.3.1 欧拉路径与欧拉回路t343
8.3.2 哈密尔顿路径与哈密尔顿回路t345
8.3.3 广度优先遍历t346
8.3.4 深度优先遍历t349
8.4 最短路径问题t353
8.4.1 固定起点最短路问题t353
8.4.2 非固定起点最短路问题t355
8.4.3 最短路径的动态规划解法t358
8.4.4 旅游交通路线问题t364
8.5 最小生成树t372
8.5.1 最小生成树的定义t372
8.5.2 克鲁斯卡尔算法t373
8.5.3 普里姆算法t375
8.6 经典问题举例t379
8.6.1 文字游戏问题t380
8.6.2 道路修建问题t382
8.6.3 回家路线问题t385
8.6.4 水塘计算问题t387
8.6.5 棍子还原问题t389
8.7 本章小结t392

第9章 树形搜索结构t393
9.1 二叉搜索树t394
9.1.1 二叉搜索树的概念t394
9.1.2 二叉搜索树的操作t395
9.1.3 二叉搜索树的实现t397
9.1.4 二叉搜索树的分析t400
9.2 AVL树t403
9.2.1 AVL树的概念t404
9.2.2 AVL树的旋转t405
9.2.3 AVL树的实现t410
9.3 红黑树t418
9.3.1 红黑树的概念t418
9.3.2 红黑树的操作t421
9.3.3 红黑树的实现t428
9.4 Trie树t433
9.4.1 Trie树的概念t433
9.4.2 Trie树的表示t434
9.4.3 Trie树的实现t435
9.5 本章小结t439

第10章 集合与字典t441
10.1 集合论基础t442
10.1.1 集合的概念t442
10.1.2 集合的运算t444
10.2 集合的实现t445
10.2.1 位向量集合t445
10.2.2 链表集合t451
10.3 字典t460
10.3.1 字典的概念t461
10.3.2 搜索运算t463
10.4 散列t467
10.4.1 散列的概念t467
10.4.2 散列函数t469
10.4.3 处理散列冲突t471
10.4.4 散列的应用t475
10.5 经典问题举例t476
10.5.1 拼写检查问题t476
10.5.2 无线网络问题t485
10.5.3 第K个数问题t488
10.6 STL中的sett490
10.7 本章小结t493

第11章 排序t495
11.1 排序问题概述t496
11.1.1 基本概念和定义t496
11.1.2 排序算法的分类t497
11.1.3 排序算法分析与选择t497
11.2 插入排序t498
11.2.1 直接插入排序t498
11.2.2 二分法插入排序t501
11.2.3 希尔排序t503
11.3 选择排序t506
11.3.1 直接选择排序t506
11.3.2 堆排序t508
11.4 交换排序t512
11.4.1 冒泡法排序t512
11.4.2 Shaker排序t514
11.4.3 快速排序t517
11.5 归并排序t522
11.6 计数排序t526
11.7 本章小结t531
参考文献tt533

查看全部 ↓

精品推荐