C++ 扩展数据结构
堆 在计算机科学中,堆是一种专门的基于树的数据结构,它本质上是一个完全二叉树,可以使用链式结构的树来实现,但是由于堆一定是完全二叉树,通常使用数组来实现。 将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。我们统称为堆序性。 常见的堆有二叉…
|
230
|
|
6048 字
|
1.4 小时
使用栈模拟实现递归
非递归实现组合型枚举 93. 递归实现组合型枚举 - AcWing题库 77. 组合 - 力扣(Leetcode) 递归 void dfs(int u, int cnt, int state) { // 1 if (cnt > k || cnt + n …
|
306
|
|
169 字
|
5 分钟
C++ STL介绍和底层原理讲解
STL简介 长久以来,软件界一直希望建立一种可重复利用的东西 C++的面向对象和泛型编程思想,目的就是复用性的提升 大多情况下,数据结构和算法都未能有一套标准导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准,诞生了STL c++的三种特性:封装,继承…
|
722
|
|
19271 字
|
4 小时
前缀、中缀、后缀表达式
前缀、中缀、后缀表达式 前缀(prefix)、中缀(infix)、后缀(suffix)表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同,前缀表达式的运算符位于操作数之前,中缀和后缀同理 举例: 中缀表达式:1 + (2 + 3) × 4 - …
|
310
|
|
1595 字
|
25 分钟
ACWing算法总结
AcWing 笔记 该笔记主要整理 AcWing 算法基础课中出现的算法,其中各模块未包含的算法将在模块开始位置指出 高精度算法 高精度加法 将数据读取 string 中,在将 string 中的数据逆序存储到 vector 数组中,逆序存储的好处在于当个位相…
|
240
|
|
6892 字
|
2 小时
常见算法总结
算法总结 排序算法 分类 时间复杂度 算法稳定性:在一组待排序记录中,如果存在任意两个相等的元素,我们标记为 R 和 S,且在待排序记录中 R 在 S 前,如果在排序后 R 依然在 S 前,即它们的前后位置在排序前后不发生改变,则称为排序算法为稳定的。 十大经…
|
211
|
|
11634 字
|
3.2 小时