C++中的算法与数据结构

需积分: 0 8 下载量 60 浏览量 更新于2024-08-02 收藏 14.07MB PDF 举报
"《C++中的算法与数据结构》由Alan Parker著,CRC Press出版,ISBN:0849371716,出版日期为1993年8月1日。这本书深入探讨了计算机科学的基础知识,包括数据表示、算法分析以及并行算法等核心主题。" 在《Algorithms and Data Structures in CPlusPlus》中,作者Alan Parker首先介绍了数据的表示方法。数据表示是理解计算机如何存储和处理信息的关键: 1.1.1 **无符号表示法**:在这种表示法中,数值的每一位都直接代表数值的一部分,没有专门的位来表示正负。 1.1.2 **带符号的绝对值表示法**:每个数值包含一个符号位,其余位表示数值的大小。 1.1.3 **二进制补码表示法**:这是用于表示负数的常见方法,通过取反加一来计算负数的二进制形式。 1.1.4 **符号扩展**:当进行算术运算时,为了保持精度,可能需要将较短的二进制数扩展到与较长的数相同的长度。书中有对三种类型的符号扩展(带符号、无符号和二进制补码)的讨论,并提供了一个C++程序示例来说明其工作原理。 1.2 **浮点数表示**:书中讨论了IEEE 754标准,这是浮点数在计算机中的标准表示方式。分为32位和64位两种标准,详细解释了它们的格式,并给出了C++实现示例。此外,还介绍了位操作符在处理浮点数中的应用。 1.3 **字符格式—ASCII**:ASCII编码是字符编码的一种,定义了128个不同的字符,对于文本处理至关重要。 1.4 **整合所有知识**:这一部分将前面的概念综合起来,展示如何在实际编程中应用这些基础知识。 接下来,作者转向了算法的核心概念: 2.1 **顺序**:在讨论算法复杂性时,顺序是衡量效率的基本单位。 2.2 **归纳法**:这是一种证明数学命题的有效方法,也常用于理解和设计算法。 2.3 **递归**:递归是算法设计的重要工具,书中举例介绍了阶乘、斐波那契数列、一般递归关系和汉诺塔问题的递归解决方案。 2.3.5 **布尔函数实现**:讨论了如何使用递归实现布尔函数。 2.4 **图和树**:这部分可能涵盖图的遍历、树的搜索算法等,是数据结构中的重要组成部分。 2.5 **并行算法**:介绍了并行计算的概念,如速度增益和Amdahl定律,以及管道和任务分解等并行计算策略。 每一章末尾都包含练习题,帮助读者巩固所学知识。这本书不仅适合初学者,也为有一定经验的程序员提供了深入理解C++中算法和数据结构的宝贵资源。