banner
cos

cos

愿热情永存,愿热爱不灭,愿生活无憾
github
tg_channel
bilibili

c++

模板类封装(2)——顺序栈和链式栈
c++ 语言,链栈实现 实验内容: 编程实现栈的如下功能: (1)建立一个长度为 n 的顺序栈,元素类型可自行定义,并输出栈中各元素值。 (2)将数据元素 e 入栈,并输出入栈后的顺序栈中各元素值。 (3)将顺序栈中的栈顶元素出栈,并输出出栈元素的值和出栈后顺序栈中各元素值…
cover

链式前向星存图、二分图匹配之匈牙利算法 模板&分析(存用)

参考博客:链式前向星 -- 最通俗易懂的讲解、算法讲解:二分图匹配【图论】、趣写算法系列之 -- 匈牙利算法、匈牙利算法与增广路径 暑假整的忘了发 2333 @TOC 1. 是什么 如果说邻接表是不好写但效率好,邻接矩阵是好写但效率低的话,前向星就是一个相对中庸的数据结构…
cover

模板类封装(1)——单链表

加入了 ReverseList 函数,逆转单链表操作 改了个 bug,逆转链表时特判一个结点的情况 又改了 N 个 bug,特判空链表的情况 试试模板类加上数据结构 肯定还是会有遗漏的地方的,欢迎指正 不多说,上代码 ps是 c++11 特性,使用时需注意 Copy templ…
cover

状压dp——模板&分析&例题(存用)

状压讲解部分参考博客状压 DP 详解(位运算) 这里是引用 状压 dp,即将状态压缩成 2 进制来保存,如矩阵中将一行的状态压缩成一个二进制串,如 dp [S][v] 中,S 可以代表已经访问过的顶点的集合,v 可以代表当前所在的顶点为 v。S 代表的就是一种状态…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

数据结构学习笔记<9> 散列查找

1. 概念引出 编译处理中对变量的管理:动态查找问题 利用查找树进行?—— 两个变量名(字符串)比较效率不高 将字符串转换为数字,再处理?—— 即为散列查找的思想 已知的几种查找方法: 顺序查找 O (N) 二分查找(静态查找) O (log~2~N) 二叉搜索树 O…
cover

归并排序循环实现(存用)

递归的归并排序是很占空间和时间的,而非递归算法就不一样了,额外空间复杂度最少为 O (N)。 陈越姥姥的慕课里就讲得很清楚~戳这儿 这里就直接上代码 + 注释了 Copy #include <iostream> #include <cstdio> #include <queue…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

数据结构学习笔记<8> 排序

1. 概念定义 AOV 网络 例如,假定一个计算机专业的学生必须完成图 3-4 所列出的全部课程。从图中可以清楚地看出各课程之间的先修和后续的关系。如课程 C5 的先修课为 C2,后续课程为 C4 和 C6。通常,我们把这种顶点表示活动…
cover

博弈论——模板&分析(存用)

描述 基本的斐波那契博弈(Fibonacci Game)描述如下: 有一堆石子,两个顶尖聪明的人玩游戏,先取者可以取走任意多个,但不能全取完,之后每次可以取的石子数至少为 1,至多为对手刚取的石子数的 2 倍。约定取走最后一个石子的人为赢家,求必败态。 结论 当且仅当总石子…
cover
cover

MOOC浙大数据结构课后题记录——PTA数据结构题目集(全)

原博指路:MOOC 浙大数据结构课后题记录 ——PTA 数据结构题目集 (全) 本博客是为了记录学习数据结构时做的题集,若代码有疏漏欢迎指出! 也相当于是一个数据结构的总结了~ ps:因为已经学过 c++ 了所以都用 c++ 写了,但也有很多 c 语言的东西。 MOOC 传送门…
图论——解决最小生成树问题(Kruskal算法&Prim算法)
上周末的蓝桥杯省模拟赛时最后一题是一道最小生成树的题目,因为恰好在慕课上刚看到这个地方,所以现学了 Prim 算法,解决了这个题目 (大概),赛后就打算多琢磨琢磨这一类题目。题目链接 最小生成树问题,是指给定无向图 G=(V,E),连接 G 中所有点,且边集是 E 的子集的树称为…
cover
cover
cover
cover
cover
cover
cover
cover
cover

数据结构学习笔记<7> 图

1. 什么是图 表示 “多对多” 的关系,包含了: 一组顶点:通常用 V (Vertex) 表示顶点集合 一组边:通常用 E (Edge) 表示边的集合 无向边是顶点对:(v,w) ∈ E,其中 v,w∈V 有向边 <v,w> 表示从 v 指向 w 的边 (单行线) 不考虑重…
动态规划学习笔记(1)
记录一下慕课学习的笔记,以及例题代码 一。递归到动规的一般转化方法 递归函数有 n 个参数就定义一个 n 维的数组, 数组的下标是递归函数参数的取值范围。 这样就可以从边界值开始逐步填充数组,相当于计算递归函数值的逆过程。eg:例题 1 数字三角形 二。动规解题的一般思路 1…
cover
cover
cover
cover
cover
cover

数据结构学习笔记<6> 堆与哈夫曼树与并查集

1. 堆是什么 堆(Heap), 是一个可以被看做一棵完全二叉树的数组对象,有以下性质: 任意节点的值是其子树所有结点中的最大值 / 最小值(有序性) 堆总是一棵用数组表示的完全二叉树。 2. 最大堆的操作函数 定义 Copy typedef struct…
cover
cover

RMQ问题——线段树

上篇说到 RMQ 问题可以用 ST 表算法处理,但需要在线修改的时候,线段树是更好的选择。 如图,很明显线段树是个二叉搜索树 要注意的点如下: 线段树用数组存储,数组空间简单的就一般开到原数组的 4*n 倍(准确的说是将 n 向上扩充到 2 的幂次方然后乘 2,如 5->8-…
cover
cover
cover
cover
cover
cover
cover
cover

数据结构学习笔记<5> 二叉搜索树与平衡二叉树

1. 二叉搜索树是什么 二叉搜索树(BST,Binary Search Tree), 又称二叉排序树或二叉查找树,是一棵二叉树,可以为空,当不为空时满足以下性质: 非空左子树的所有键值小于其根结点的键值 非空右子树的所有键值大于其根结点的键值 左、右子树都为二叉搜索树 2…
cover
cover

RMQ问题——ST表算法

ST 表是什么 ST 表是一个用来解决区间最值问题查询的算法 它用O (nlogn) 复杂度预处理,可以实现 O (1) 复杂度的查询。 缺点:无法支持在线修改 模板题:ST 表 - 洛谷 1. 预处理 用一个二维数组 dp [i][j] 表示下标为 i ~ i + 2^j^ -…
cover
cover
cover
cover
cover

数据结构学习笔记<4> 二叉树

一、什么是树 1. 树的定义 树(Tree):n(n≥0)个结点构成的有限集合。 当 n=0 时,称为空树; 对于任一棵非空树(n>0), 它具备以下性质: 树中有一个称为 “根(Root)” 的特殊结点,用 r 表示。 其余结点可分为 m(m>0)个互不相交的有限集 T1…
cover
cover

数据结构学习笔记<3> 队列

一、队列的抽象数据类型描述 类型名:队列(Queue) 数据对象集:一个有 0 个或多个元素的有穷线性表 操作集:长度为 MaxSize 的堆栈 Q∈Queue, 队列元素 item∈ElementType 1. 生成长度为 MaxSize 的空队列 Queue…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.