-
《数据结构》图floyd算法示例-大家一定要看
所属栏目:[安全] 日期:2021-04-02 热度:160
图的只操作复杂,但很在意义和意思。这里根据课本精华,实现一个图的最短路径算法,请参考。 准备计算课本P172,图6-13。如下: #include iostream #include string #includeiomanip //引入输入输出格式头文件using namespace std; const int Maxsize = 10[详细]
-
《数据结构》问题回答:why100个结点的完全二叉树叶子数为50.
所属栏目:[安全] 日期:2021-04-02 热度:156
? ?有同学问:为什么具有100个结点的完全二叉树的叶子节点数为50? ? ? 这个问题很有意思,谢谢这同同学的提问。现在分析一下。 ? ?如果一棵完全二叉树有100个结点,我们根据以下两点: ? ? ?1.二叉树的性质:深度为k的二叉树,最多有2的k次方-1个结点。 ?[详细]
-
《数据结构》完全二叉树的叶子数讨论
所属栏目:[安全] 日期:2021-04-02 热度:94
? ? ?完全二叉树是一种很特别的树,很多性质和特性值得我们关注。下面,就来关注一下叶子数目。 ? ? 如果一树是是完全二叉树,结点数为n,叶子是多少呢?现设结点总数为n,度为2和0结点数分别为n2和n0。下面讨论叶子数目。即计算n0值。 ? ? ?我们根据完全二[详细]
-
【数据结构】2.java源码关于LinkedList
所属栏目:[安全] 日期:2021-04-01 热度:107
副标题#e# 关于LinkedList的源码关注点 1.从底层数据结构,扩容策略 2.LinkedList的增删改查 3.特殊处理重点关注 4.遍历的速度,随机访问和iterator访问效率对比 ? 1.从底层数据结构,扩容策略 构造函数不做任何操作,只要再add的时候进行数据初始化操作,[详细]
-
【数据结构】【状态压缩】刷题
所属栏目:[安全] 日期:2021-04-01 热度:81
没什么别的,就希望自己记住那些函数 1floyd+bitset优化 #includecstdio#includecstdlib #includebitset using namespace std;int n;const int N=2003;char s[N];bitset N bs[N]; int main(){ scanf("%d",n); for(int i=1;i=n;i++) { scanf("%s",s+1); for[详细]
-
【数据结构】第二章小结
所属栏目:[安全] 日期:2021-04-01 热度:133
副标题#e# ps:第一次用博客园写,记录第一次 一、数据结构第二章主要为:顺序表和链表的构造及其增删查改的一些基本操作,以及粗略计算它们的时间or空间的复杂度。 ? ? ? 1、顺序表: ? ? ? ? ? ? ? ? ? ? ? ? ?(1)? 特点:逻辑结构上相邻,物理存储上也[详细]
-
【数据结构】 单向链表
所属栏目:[安全] 日期:2021-04-01 热度:185
【1】错误:H-next =NULL 或其他“让指针指向空”的语句运行报错:“ ‘NULL‘ : undeclared identifier”? 、 “ ‘=‘ : cannot convert from ‘int‘ to ‘struct node *‘? ” 原因:未引入头文件 #include “stdio.h”?,把NULL定义为一个空地址是在 s[详细]
-
[JZOJ6089]【CodeChef 2014 April Challenge】Final Battle of C
所属栏目:[安全] 日期:2021-04-01 热度:100
Description (n,q,Vleq 100000,w_ileq 10^9) Solution 又是一道大数据结构 由于有一个下取整,这就导致了不同时间的修改值是不能简单的直接加在一起的。 容易发现,1操作的影响只会影响到距离不超过log的点。 这样我们很容易得到一个(qlog nlog ^2V[详细]
-
【数据结构】红黑树与跳表-(SortSet)-(TreeMap)-(TreeSet)
所属栏目:[安全] 日期:2021-04-01 热度:131
副标题#e# SortSet 有序的Set,其实在Java中TreeSet是SortSet的唯一实现类,内部通过TreeMap实现的;而TreeMap是通过红黑树实现的;而在Redis中是通过跳表实现的; SkipList 跳表,思想类似平衡二叉树,但又不一样;下面摘了一个介绍: skiplist数据结构简[详细]
-
【数据结构】维护队列
所属栏目:[安全] 日期:2021-04-01 热度:132
T69293 维护队列 题目描述 Alice 给 Bob 布置了很多工作,他忙的不可开交,决定按照“先进先出(FIFO)”的顺序依次处理这些工作。但是处理过程中,Bob 意识到这种顺序可能不是最优的,因此他会选择性的把某些工作延后。 抽象来说,你需要维护一个队列,支持[详细]
-
【数据结构】静态链表的实现(C语言描述)
所属栏目:[安全] 日期:2021-04-01 热度:159
#include stdio.h#include "stdlib.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 1000 // 定义线性表最大容量typedef int Status;typedef int ElemType;// 定义静态链表的存储结构typedef struct{ ElemType data; // 数据[详细]
-
【数据结构】莫队(二)
所属栏目:[安全] 日期:2021-04-01 热度:197
今天的内容是带修莫队。 例题:P1903 [国家集训队]数颜色 / 维护队列 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会向你发布如下指令: 1、 Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同[详细]
-
【数据结构】二叉树的创建与遍历
所属栏目:[安全] 日期:2021-04-01 热度:95
#include stdio.h#include string.h#include stdlib.h#include math.h#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */typedef int Status;typedef char TElemType; /* 假定二叉树的元素都是字符类[详细]
-
【数据结构】线段树(Segment Tree)
所属栏目:[安全] 日期:2021-04-01 热度:199
副标题#e# ? 假设我们现在拿到了一个非常大的数组,对于这个数组里面的数字要反复不断地做两个操作。 1、(query)随机在这个数组中选一个区间,求出这个区间所有数的和。 2、(update)不断地随机修改这个数组中的某一个值。 时间复杂度: 枚举: 枚举L~R[详细]
-
【数据结构】4. 树与二叉树
所属栏目:[安全] 日期:2021-03-31 热度:62
副标题#e# 目录 4.1 树的基本概念 4.1.1 树的定义 4.1.2 基本术语 4.1.3 树的性质 4.2 二叉树的概念 4.2.1 二叉树的定义及其主要特性 (1)二叉树的定义 (2)几个特殊的二叉树 (3)二叉树的性质 4.2.2 二叉树的存储结构 (1)顺序存储结构 (2)链式存储[详细]
-
【数据结构】 线性表 的 链式存储结构
所属栏目:[安全] 日期:2021-03-31 热度:136
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(0); 14[详细]
-
【数据结构】10分钟教你用栈求解迷宫老鼠问题超详细教程附C++源
所属栏目:[安全] 日期:2021-03-31 热度:73
问题描述 给定一张迷宫地图和一个迷宫入口,然后进入迷宫探索找到一个出口。如下图所示: 该图是一个矩形区域,有一个入口和出口。迷宫内部包含不能穿越的墙壁或者障碍物。这些障碍物沿着行和列放置,与迷宫的边界平行。迷宫的入口在左上角,出口在右下角[详细]
-
【数据结构】1-3 多项式相加
所属栏目:[安全] 日期:2021-03-31 热度:154
其实这个还是有点问题的,在偶见情况下会打印出0*x,目前无解唔。。。 原理就是借用线性表,然后做运算直接先插入到后面。 然后遍历一下,只要指数相同就合并在前面一个里面,后面的归0(不删除)。 打印的时候加一个判断是否为0的条件就行了。 下面是源码[详细]
-
【数据结构】1-2 约瑟夫环问题
所属栏目:[安全] 日期:2021-03-31 热度:59
副标题#e# 这里放出两种不同的代码,一个是老师给的(较为复杂),还有一个是自己写的。 自己写的: #includeiostreamusing namespace std;struct Node { int data; //数据单元 Node *link; //指向下一个结点};class Josephus{private: Node *head,*current[详细]
-
【数据结构】树状数组
所属栏目:[安全] 日期:2021-03-31 热度:127
树状数组 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-03-31 热度:175
副标题#e# 类的结构如下: 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-03-31 热度:117
副标题#e# 普通莫队 简介 莫队是一种基于分块思想的离线算法,用于解决区间问题,适用范围如下: 只有询问没有修改。 允许离线。 在已知询问([l,r])答案的情况下可以(O(1))得到([l,r?1],[l,r+1],[l?1,r],[l+1,r])的答案。 满足以上三个条件就可以在([详细]
-
『数据结构』树状数组
所属栏目:[安全] 日期:2021-03-31 热度:139
树状数组的问题模型: 现在有一个这样的问题: 有一个数组(a),下标从(0)到(n-1),现在你要进行(w)次修改,(q)次查询。 修改是修改数组中某一个元素的值; 查询是查询数组中任意一个区间的和,(w+q500000)。 这个问题很普遍,首先分析下朴素做[详细]
-
《数据结构》实验二: 线性表实验
所属栏目:[安全] 日期:2021-03-31 热度:96
《数据结构》实验二:?????线性表实验 一..实验目的 ?????巩固线性表的数据结构,学会线性表的应用。 1.回顾线性表的逻辑结构,线性表的物理存储结构和常见操作。 2.学习运用线性表的知识来解决实际问题。 3.进一步巩固程序调试方法。 4.进一步巩固模板程[详细]
-
【数据结构】红黑树
所属栏目:[安全] 日期:2021-03-31 热度:163
副标题#e# ? ? ? ? ?红黑树是一种二叉平衡树,在每一个结点增加了一个存储位表示结点的颜色,以维持它的平衡; 红黑树性质 (1)红黑树结点有如下域:color,key,left,right,p;我们把这些NIL结点是为指向外结点的指针,可以自己定义; (2)每一个结点[详细]
