
数据结构
彭同学她同桌
这个作者很懒,什么都没留下…
展开
-
数据结构-红黑树
1根节点必须是黑色的 每个叶子节点都是不存储数据的黑色结点2红色结点孩子必须是黑色的3高度差不能为两倍 为什么会有这个规定 因为两条路径中在满足下面这个条件(4)有两种极端情况 一条路就全是黑色的 假设为n 则另一条路径一定也有n个黑色结点 那么这另一条路径假设是另一个极端情况 就是每个黑色结点的子结点都是红色结点 那就是另一条路径的两倍深度了4从任意节点到每个叶子节点都包含相同的黑色结点5红黑树假设有n个结点 则该树的最大高度只可能是2log(n+1)//这个的原因需要先盖住红色结点 也是因为条件原创 2021-09-28 16:25:23 · 156 阅读 · 0 评论 -
数据结构-bitset
#include<bitset>构造函数 bitset<4> bitset1; //无参构造,长度为4,默认每一位为0 bitset<8> bitset2(12); //长度为8,将12转为二进制,前面用0补充 string s = "100101";//用string或者char[]初始化里面只能包含0或1 如果包含了会直接程序崩溃 例如"1002" bitset<10> bitset3(s); //长度为10,前面用0补转载 2021-08-22 16:23:14 · 184 阅读 · 0 评论 -
数据结构-并查集
原理最重要的就是给每个结点都保存祖宗结点 每次就对祖宗结点进行操作就行了核心思想就是 假设我们有那么他本来要表达的就是但是这样看就很复杂 而且如果我们要想找有没有环的时候就无从下手 那么我们可以重新构图首先这并查集是用来解决图的构建问题 比如说 我们知道一些集合 也就是结点指向某个结点 代表连通 例如[[0, 1], [1, 2], [3, 4]] 表示0->1 1->2那么我们要怎么构建0->1呢我们先构建一个parent数组 记录该结点的父亲结点是谁先将parten原创 2021-08-03 15:56:52 · 84 阅读 · 0 评论 -
数据结构-字典树
树节点struct Node{ Node* next[MAX];//该结点的子节点 int flag; Node() { for (int i = 0; i < MAX; i++) { flag = 0; next[i] = NULL;//将子结点都设置为空 } }};通过字符串构造树/*在字典树中插入一个字符串*/void ins(string s){ int len = s.size();//先获取字符的长度 Node* now = root原创 2021-08-01 17:42:28 · 109 阅读 · 0 评论 -
数据结构-AVL树(二叉平衡搜索树)
什么是平衡树中任意节点的左子树和右子树深度差<2下图中第一个就是平衡的 第二个是不平衡的平衡的目的是防止特殊情况出现 例如这样建立二叉搜索树的话就会发现搜索5这个节点要找5次如何将一个二叉搜索树变平衡b站左右旋逻辑代码实现#pragma once#include<iostream>#include<algorithm>using namespace std;typedef int T;class AvlTree {private: AvlTr原创 2021-06-23 17:13:15 · 122 阅读 · 1 评论 -
数据结构-红黑树
什么是红黑树1.根节点一定是黑色的2.叶子结点是不存储数据的黑色结点3.任意相邻的节点不能同时为红色4.任意节点到其可到达的叶节点包含相同数量的黑色节点原创 2021-06-23 15:04:09 · 216 阅读 · 0 评论 -
数据结构-二叉搜索树
特点1.若任意结点的左子树不空,则左子树上所有结点的值均不大于它的根结点的值。2. 若任意结点的右子树不空,则右子树上所有结点的值均不小于它的根结点的值。3.任意结点的左、右子树也分别为二叉搜索树就如这棵树 假设数列是{12,5,18,2,9,15,19,17,16}先拿出12作为根节点再拿出5 发现比12小 就放在左子结点再拿18 发现比12大就放在右子结点再拿2 先与12比较 发现比12小 就再与12的左节点比较 发现比5小 就放在5的左子结点再拿9 先与12比较 发现比12小 就再与原创 2021-06-09 15:27:39 · 131 阅读 · 0 评论 -
数据结构-哈夫曼树和编码
哈夫曼树结点的路径长度从根结点到该结点的路径上的链接数例如图中C的路径长度就是3树的路径长度树中每个叶子结点的路径长度之和例如图中左边那棵树的树路径长度就是1+2+3+3 = 9结点带权路径长度结点的路径长度与结点权值的乘积图中结点C的带权路径长度就是 70 * 3 = 210树的带权路径长度WPL 是树中所有叶子节点的带权路径长度之和图中左树的就是5 * 1 + 15 * 2 + 70 * 3 + 10 * 3 = 275WPL值最小 就是最优二叉树构造哈夫曼树例如四个原创 2021-05-24 11:18:28 · 269 阅读 · 0 评论 -
数据结构-散列表(哈希表)
什么是散列表原创 2021-03-31 15:52:46 · 138 阅读 · 0 评论