banner
cos

cos

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

数据结构

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

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

加入了 ReverseList 函数,逆转单链表操作 改了个 bug,逆转链表时特判一个结点的情况 又改了 N 个 bug,特判空链表的情况 试试模板类加上数据结构 肯定还是会有遗漏的地方的,欢迎指正 不多说,上代码 ps是 c++11 特性,使用时需注意 Copy templ…
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
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 的边 (单行线) 不考虑重…
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…
数据结构学习笔记<2> 堆栈
一、堆栈的抽象数据类型描述 类型名:堆栈(Stack) 数据对象集:一个有 0 个或多个元素的有穷线性表 操作集:长度为 MaxSize 的堆栈 S∈Stack, 堆栈元素 item∈ElementType 1. 生成空堆栈,其最大长度为 MaxSize; Stack…
广义表、多重链表初接触
一、广义表 是线性表的推广 对于线性表而言,n 个元素都是基本的单元素 广义表中,这些元素不仅可以使单元素也可以是另一个广义表 Copy > typedef struct GNode *GList; struct GNode { > int Tag; //标志域…
数据结构学习笔记<1> 线性表
一、线性表的抽象数据类型描述 类型名:线性表(List) 数据对象集:线性表示 n (>=0) 个元素构成的有序序列 (a1,a2,……,an) 操作集:线性表 L∈List, 整数 i 表示位置,元素 X∈ElementType 二、顺序表 1. 定义 Copy struct…
此博客数据所有权由区块链加密技术和智能合约保障仅归创作者所有。