本书是关于计算机科学与工程领域的基础性研究科目之一——数据结构与算法的专著。 本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一个坚实的基础。更为可贵的是,本书不仅仅介绍了理论知识,还提供了50多个应用实例及600多道练习题。 本书内容广博权威,结构清晰合理,是一本全新的有关数据结构与算法的教材,对于计算机科学与工程领域的从业人员也是一本很好的参考书。 目 录译者序前言第一部分 预备知识第1章 C++程序设计 11.1 引言 11.2 函数与参数 21.2.1 传值参数 21.2.2 模板函数 31.2.3 引用参数 31.2.4 常量引用参数 41.2.5 返回值 41.2.6 递归函数 51.3 动态存储分配 91.3.1 操作符new 91.3.2 一维数组 91.3.3 异常处理 101.3.4 操作符delete 101.3.5 二维数组 101.4 类 131.4.1 类Currency 131.4.2 使用不同的描述方法 181.4.3 操作符重载 201.4.4 引发异常 221.4.5 友元和保护类成员 231.4.6 增加#ifndef, #define和#endif语句 241.5 测试与调试 241.5.1 什么是测试 241.5.2 设计测试数据 261.5.3 调试 281.6 参考及推荐读物 29第2章 程序性能 302.1 引言 302.2 空间复杂性 312.2.1 空间复杂性的组成 312.2.2 举例 352.3 时间复杂性 372.3.1 时间复杂性的组成 372.3.2 操作计数 372.3.3 执行步数 442.4 渐进符号(O、 健?、 o) 552.4.1 大写O符号 562.4.2 椒?582.4.3 符号 592.4.4 小写o符号 602.4.5 特性 602.4.6 复杂性分析举例 612.5 实际复杂性 662.6 性能测量 682.6.1 选择实例的大小 692.6.2 设计测试数据 692.6.3 进行实验 692.7 参考及推荐读物 74第二部分 数据结构第3章 数据描述 753.1 引言 753.2 线性表 763.3 公式化描述 773.3.1 基本概念 773.3.2 异常类NoMem 793.3.3 操作 793.3.4 评价 833.4 链表描述 863.4.1 类ChainNode 和Chain 863.4.2 操作 883.4.3 扩充类Chain 913.4.4 链表遍历器类 923.4.5 循环链表 933.4.6 与公式化描述方法的比较 943.4.7 双向链表 953.4.8 小结 963.5 间接寻址 993.5.1 基本概念 993.5.2 操作 1003.6 模拟指针 1023.6.1 SimSpace的操作 1033.6.2 采用模拟指针的链表 1063.7 描述方法的比较 1103.8 应用 1113.8.1 箱子排序 1113.8.2 基数排序 1163.8.3 等价类 1173.8.4 凸包 1223.9 参考及推荐读物 127第4章 数组和矩阵 1284.1 数组 1284.1.1 抽象数据类型 1284.1.2 C++数组 1294.1.3 行主映射和列主映射 1294.1.
2019-12-21 22:08:27
11.23MB
C
1