Skip to main content

12 docs tagged with "C++"

View all tags

第49章 栈、队列与循环队列

栈、队列和循环队列是计算机科学中最基础且应用广泛的线性数据结构,它们通过特定的元素插入和删除规则,实现对数据的有序管理

第50章 树

树(Tree)是一种重要的非线性数据结构,它由 $n(n ≥0)$ 个节点组成,节点之间通过边连接,呈现出层次化的分支结构。树结构在计算机科学中应用广泛,如文件系统的目录结构、数据库索引、语法解析树等。

第51章 哈夫曼树

哈夫曼树(Huffman Tree)又称最优二叉树,是一种带权路径长度最短的二叉树,由计算机科学家大卫哈夫曼于1952年提出。哈夫曼树在数据压缩、决策系统等领域有着广泛应用。

第52章 完全二叉树和二叉排序树

完全二叉树和二叉排序树是两种具有特殊性质的二叉树,在数据存储和查找领域应用广泛。完全二叉树因其结构规整,适合高效的数组存储和层次遍历;二叉排序树则通过定义节点间的有序关系,支持高效的动态查找、插入和删除操作。

第53章 格雷编码

格雷编码(Gray Code)是一种特殊的二进制编码方式,其核心特性是相邻的两个编码之间仅有一位二进制数不同,且首尾两个编码也满足这一特性(形成循环)。

第54章 二叉树的搜索算法

二叉树的搜索算法是指在二叉树中查找满足特定条件的节点(如查找指定值、符合条件的路径等)的方法。由于二叉树属于非线性结构,搜索策略和数组、链表存在明显区别,需要结合遍历方式设计查找逻辑。

第55章 简单动态规划

动态规划(Dynamic Programming,简称DP)是一种通过分解复杂问题为重叠子问题,并利用子问题的解来高效求解原问题的算法思想。与递归相比,动态规划通过存储中间结果(即"记忆化")避免了重复计算,显著提升了效率。

第56章 面向对象编程

面向对象编程(Object-Oriented Programming,简称OOP)是一种以"对象"为核心的编程范式,通过封装、继承、多态等特性,实现代码的模块化、复用性和可维护性。C++是支持面向对象编程的典型语言,其在C语言的基础上引入了类、对象、继承等概念,为复杂程序的设计提供了强大工具。

第57章 常用数学函数

标准数学库(math.h或cmath)提供了丰富的数学计算函数,其中三角函数、对数函数和指数函数是编程中处理几何、科学计算问题的基础工具。

第58章 复杂动态规划

复杂动态规划是在基础一维动态规划之上的扩展,主要包括二维动态规划及动态规划最值优化策略。二维动态规划通过二维状态数组描述问题,适用于处理具有两个维度约束的场景(如矩阵路径、区间问题等);最值优化则通过对状态转移方程的分析,减少冗余计算,提升算法效率。

第59章 图的定义及基本图论算法

图是一种比线性表和树更复杂的非线性数据结构,它由顶点和边组成,能够描述多对多的复杂关系,在社交网络、路线规划、电路设计等领域有广泛应用。图的遍历是指从图中某一顶点出发,按照一定规则访问图中所有顶点且每个顶点仅被访问一次的过程,是图论中的基础操作。

第60章 哈希表

哈希表(Hash Table),又称散列表,是一种通过哈希函数将键(Key)映射到值(Value)的高效数据结构。它能够在平均情况下实现$$O(1)$$时间复杂度的插入、删除和查找操作,是解决查找问题的最优选择之一。