-
《数据结构》图floyd算法示例-大家一定要看
所属栏目:[安全] 日期:2021-04-02 热度:107
图的只操作复杂,但很在意义和意思。这里根据课本精华,实现一个图的最短路径算法,请参考。 准备计算课本P172,图6-13。如下: #include iostream #include string #includeiomanip //引入输入输出格式头文件using namespace std; const int Maxsize = 10;[详细]
-
《数据结构》问题回答:why100个结点的完全二叉树叶子数为50.
所属栏目:[安全] 日期:2021-04-02 热度:177
? ?有同学问:为什么具有100个结点的完全二叉树的叶子节点数为50? ? ? 这个问题很有意思,谢谢这同同学的提问。现在分析一下。 ? ?如果一棵完全二叉树有100个结点,我们根据以下两点: ? ? ?1.二叉树的性质:深度为k的二叉树,最多有2的k次方-1个结点。 ? ?[详细]
-
《数据结构》完全二叉树的叶子数讨论
所属栏目:[安全] 日期:2021-04-02 热度:126
? ? ?完全二叉树是一种很特别的树,很多性质和特性值得我们关注。下面,就来关注一下叶子数目。 ? ? 如果一树是是完全二叉树, 结点数为n,叶子是多少呢? 现设结点总数为n,度为2和0结点数分别为n2和n0。下面讨论叶子数目。即计算 n0值。 ? ? ?我们根据完全[详细]
-
【数据结构】树状数组
所属栏目:[安全] 日期:2021-04-01 热度:122
树状数组 ta的本质是利用二进制的性质维护一组数据 最常用的操作就是求前缀和 int lowbit( int x){ return x(- x); /* 通过补码,清空高位1,只留下最后一个1 */ } ? void add( int x, int val){ while (x= n){ c[x] += val; x += lowbit(x); } /* 更新时,[详细]
-
【数据结构】5.1 顺序表的查找以及二分查找的实现
所属栏目:[安全] 日期:2021-04-01 热度:65
类的结构如下: class StaticSearchTable { private : int * data; int data_number; bool search_seq( int loc, int key); void select_sort(); bool flag; // 区分是否为顺序表 public : StaticSearchTable( int n, bool flag); int Search_Seq( int key);[详细]
-
『数据结构』莫队、带修莫队、树上莫队详解
所属栏目:[安全] 日期:2021-04-01 热度:51
普通莫队 简介 莫队是一种基于分块思想的离线算法,用于解决区间问题,适用范围如下: 只有询问没有修改。 允许离线。 在已知询问 ([l,r]) 答案的情况下可以 (O(1)) 得到 ([l,r?1],[l,r+1],[l?1,r],[l+1,r]) 的答案。 满足以上三个条件就可以在 (O(n[详细]
-
『数据结构』树状数组
所属栏目:[安全] 日期:2021-04-01 热度:161
树状数组的问题模型: 现在有一个这样的问题: 有一个数组 (a) ,下标从 (0) 到 (n-1) ,现在你要进行 (w) 次修改, (q) 次查询。 修改是修改数组中某一个元素的值; 查询是查询数组中任意一个区间的和, (w+q500000) 。 这个问题很普遍,首先分[详细]
-
『数据结构』线段树
所属栏目:[安全] 日期:2021-04-01 热度:106
线段树原理 线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为 (O(logn)) 。 线段树的每个节点表示一个区间,子节点则分别表示父节点的[详细]
-
【数据结构】【CF1073D】 Berland Fair
所属栏目:[安全] 日期:2021-04-01 热度:177
Description 给定 (n) 个商店,他们围成一个圆圈,按照顺时针从 (1) 到 (n) 编号。你有 (T) 元钱,从 (1) 号点开始按照顺时针方向走,每到一个商店,只要钱够就必须买这个商店的物品。商店中物品是无限的,即多次到达可能多次购买。求会买多少件物[详细]
-
【数据结构】 最小生成树(四)——利用kruskal算法搞定例题×3+
所属栏目:[安全] 日期:2021-04-01 热度:97
在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建树,画图,最短路径什么的,统统不需要。废话不多说,直接[详细]
-
《数据结构》中的英语名词
所属栏目:[安全] 日期:2021-04-01 热度:146
data 数据data element 数据元素data item 数据项data object 数据对象data structure 数据结构ADT (Abstruct Date Type) 抽象数据类型alogrithm 算法correctness 正确性readability 可读性robustness 健壮性frequency count 频度asymptotic time complexity[详细]
-
【数据结构】二、线性表
所属栏目:[安全] 日期:2021-04-01 热度:196
2.1. 定义与特点 定义 ? 具有相同数据类型的 (n(ngeq0)) 个数据元素的有限序列。 (n) 是表长,当 (n=0) 时该线性表是一个空表。若用 (L) 表示线性表,一般表示为: [ L=(a_1,a_2,...,a_i,a_{i+1},a_n) ] 特点 元素个数有限 元素具有逻辑上的顺序[详细]
-
【数据结构】4. 树与二叉树
所属栏目:[安全] 日期:2021-04-01 热度:117
目录 4.1 树的基本概念 4.1.1 树的定义 4.1.2 基本术语 4.1.3 树的性质 4.2 二叉树的概念 4.2.1 二叉树的定义及其主要特性 (1)二叉树的定义 (2)几个特殊的二叉树 (3)二叉树的性质 4.2.2 二叉树的存储结构 (1)顺序存储结构 (2)链式存储结构 4.3 二[详细]
-
【数据结构】 线性表 的 链式存储结构
所属栏目:[安全] 日期:2021-04-01 热度:158
1 #includestdio.h 2 #includestdlib.h 3 4 typedef struct LinkList { 5 int data; 6 LinkList * next; 7 8 }LinkList,* linklist; 9 // 创建头结点 10 int CreateList(linklist L) { 11 L = (linklist) malloc ( sizeof (LinkList)); 12 if (! L) 13 exit([详细]
-
【数据结构】10分钟教你用栈求解迷宫老鼠问题超详细教程附C++源
所属栏目:[安全] 日期:2021-04-01 热度:202
问题描述 给定一张迷宫地图和一个迷宫入口,然后进入迷宫探索找到一个出口。如下图所示: 该图是一个矩形区域,有一个入口和出口。迷宫内部包含不能穿越的墙壁或者障碍物。这些障碍物沿着行和列放置,与迷宫的边界平行。迷宫的入口在左上角,出口在右下角。[详细]
-
【数据结构】1-3 多项式相加
所属栏目:[安全] 日期:2021-04-01 热度:145
其实这个还是有点问题的,在偶见情况下会打印出0*x,目前无解唔。。。 原理就是借用线性表,然后做运算直接先插入到后面。 然后遍历一下,只要指数相同就合并在前面一个里面,后面的归0(不删除)。 打印的时候加一个判断是否为0的条件就行了。 下面是源码:[详细]
-
【数据结构】1-2 约瑟夫环问题
所属栏目:[安全] 日期:2021-04-01 热度:177
这里放出两种不同的代码,一个是老师给的(较为复杂),还有一个是自己写的。 自己写的: #includeiostream using namespace std; struct Node { int data; // 数据单元 Node *link; // 指向下一个结点 }; class Josephus{ private : Node *head,*current; /[详细]
-
【数据结构】非比较排序的算法实现(包括计数排序、计数排序)
所属栏目:[安全] 日期:2021-03-31 热度:59
计数排序: #define?_CRT_SECURE_NO_WARNINGS?1#includeiostreamusing?namespace?std;#includeassert.h#includevectorvoid?Print(vectorint??a){????for?(int?i?=?0;?i??a.size();?i++)????{????????cout??a[i]??"??";????}????cout??endl;}void?CountSort(v[详细]
-
【数据结构】非比较排序算法(实现计数排序和基数排序)
所属栏目:[安全] 日期:2021-03-31 热度:164
● 计数排序 1、算法思想: ?????? 计数排序是直接定址法的变形。通过开辟一定大小的空间,统计相同数据出现的次数,然后回写到原序列中。 2、步骤: 1)找到序列中的最大和最小数据,确定开辟的空间大[详细]
-
【数据结构】二叉搜索树
所属栏目:[安全] 日期:2021-03-31 热度:59
● 二叉搜索树满足以下条件的二叉树: 1、每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。 2、左子树上所有节点的关键码(key)都小于根节点的关键码(key)。 3、右子树上所有节点的关键码(key)都大于根节点的关键码(key)。[详细]
-
【数据结构】AVL树
所属栏目:[安全] 日期:2021-03-31 热度:176
1、AVL树简介 ????? AVL树本质上还是一棵二叉搜索树,又称高度平衡的二叉搜索树。它能保持二叉树的高度平衡,尽量降低二叉树的高度,减少树的平均搜索长度。对于二叉搜索树的介绍和实现,可查看本人上一篇博客。 2、AVL树的特点 1)本身首先是一棵二叉搜索树[详细]
-
【HDU 3328】【数据结构】Flipper
所属栏目:[安全] 日期:2021-03-31 热度:151
? ? ? ? 就是一个翻牌子的问题,写的略繁琐,因为只是实验室水题,所以不优化了,L是从最左翻面并且覆盖到第二堆上,以此类推,模拟就好。 #include "stdio.h"#include "stack"#include "queue"using namespace std;int main(int argc,char const *argv[]){[详细]
-
【1509】【数据结构】Windows Message Queue
所属栏目:[安全] 日期:2021-03-31 热度:186
其实就是对于操作符进行重载,然后用个优先队列,水之。 ?还有先后顺序的优先级不要问了。 ?? #include iostream#include queue#include algorithm#include cstringusing namespace std;struct node{char name[1000];int parameter;int priority;int num; //[详细]
-
【数据结构】布隆过滤器
所属栏目:[安全] 日期:2021-03-31 热度:138
布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。 它实际上是由一个很长的 二进制向量 和 一系列随机映射函数 组成, 布隆过滤器可以用于检索一个元素是否在一个集合中 。它的 优点是空间效率和查询时间都远远超过一般的算法,缺[详细]
-
【数据结构】树和二叉树
所属栏目:[安全] 日期:2021-03-31 热度:171
?树 ? ? ? ?树是一种典型的非线性数据结构,它能够很好地应用于描述分支和层次特性的数据集合,是由一个或多个结点组成的有限集合T, 一棵树至少有一个结点。 ?? ? ? ? ? 树的度 , 一个结点的子树数目就是该结点的“度”,在这个结点下面直接与这个结点连着[详细]