![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
CN_swords
这个作者很懒,什么都没留下…
展开
-
【树状数组 区间更新区间查询】code
Link:http://codevs.cn/problem/1082/#include#include#includeusing namespace std;typedef long long LL;//c[i] = a[i]-a[i-1]//c2[i] = (i-1)*c[i]//树状数组维护c,c2//ans[1-n]: n*sigma(c,n) - sigma(c2,n原创 2017-09-06 20:17:34 · 218 阅读 · 0 评论 -
二叉树的定义,储存和建立
一.定义 1.二叉树是一个有穷的结点集合。这个集合可以为空,若不为空,则他是由根结点和称为其左子树和右子树的两个不相交的二叉树组成。 2.完美二叉树是所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上这样的二叉树。 3.完全二叉树是结点的编号和完美二叉树结点的编号相同(如果对树的结点从上至下,从左至右的顺序进行编号)。二.二叉树的储存结构: 1.顺序储存:只适用于不需要修改的完全原创 2016-11-19 18:35:42 · 864 阅读 · 0 评论 -
二叉树的操作
1.二叉树的遍历 树的遍历是访问树的每个结点,且每个结点被访问一次。 分为四种方式:先序遍历,中序遍历,后序遍历,层序遍历。 代码实现: void InorderTraversal( BinTree BT ) { if(BT) { InorderTraversal(BT->Left); printf(” %c”,BT->Data);原创 2016-11-21 11:35:25 · 254 阅读 · 0 评论 -
搜索二叉树的定义及操作
一.定义: 二叉搜索树是满足以下性质的二叉树。 1.非空左子树的所有键值小于其根结点的键值; 2.非空右子树的所有键值大于其根结点的键值; 3.左右子树都是二叉树。二.二叉搜索树的储存: 二叉搜索树的储存和普通二叉树的储存一样,一般用链表储存。三.二叉搜索树的查找: 1.查找关键字为X的结点,返回其所在的地址: 将X值与结点值做对比,如果相等那么这个数找到,如果小于应该再递归在左子树上原创 2016-11-29 20:48:39 · 1226 阅读 · 0 评论 -
单向链表建立与遍历
只是防忘而已#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long#define INF 0x3f3f3f3f#de原创 2016-09-26 19:02:24 · 233 阅读 · 0 评论 -
【二叉树】前中序求后序,中后序求前序
前中序求后序#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<stack>#include<queue>#include<deque>#include<vector>#in原创 2017-07-02 12:37:35 · 362 阅读 · 0 评论 -
【线段树】295A Greg and Array
Link:http://codeforces.com/contest/296/problem/C#include using namespace std;typedef long long LL;/*题意:给你初始序列,m个操作,再给k个询问,每个询问的范围l,r,表示操作l到r都执行一遍,问最后的序列是怎么样的。题解:两个线段树维护,第一个先求出每个操作的操作次数,第二个知道每原创 2017-07-31 11:17:31 · 332 阅读 · 0 评论 -
【主席树 求区间第k大】poj 2104 K-th Number
Link:http://poj.org/problem?id=2104离散化+保存历史版本的线段树,线段树结点代表的意思是区间(值域)数的个数#include #include #include using namespace std;typedef long long LL;//#pragma comment(linker, "/STACK:102400000,102400原创 2017-08-14 14:48:23 · 221 阅读 · 0 评论 -
【树状数组 单点修改,区间求值】hdu 1166 敌兵布阵
Link:http://acm.hdu.edu.cn/showproblem.php?pid=1166#include using namespace std;const int N = 5e4+5;char s[10];int tree[N],n;void add(int x,int num){ while(x<=n){ tree[x]+=num;原创 2017-08-15 10:20:36 · 200 阅读 · 0 评论 -
【dp+离散化+线段树优化】Paint
题意: 求不想交的区间集合,没有覆盖到的范围最小#include using namespace std;typedef long long LL;const int N = 4e5+10;const int M = 26;const int INF = 0x3f3f3f3f;vector xs;inline int getid(LL x){return lower_bound原创 2017-08-25 15:12:30 · 285 阅读 · 0 评论 -
【树状数组 求比其小的个数】poj 2353 Stars
Link:http://poj.org/problem?id=2352注意:x,y的范围是0-32000,树状数组是无法处理0的,将处理的所有数加1放入树状数组。#include#include#includeusing namespace std;typedef long long LL;/*POJ 2352 Stars在坐标上有n个星星,如果某个星星坐标为(x, y)原创 2017-09-06 15:06:41 · 287 阅读 · 0 评论 -
【树状数组 区间修改,单点求值】1556 Color the ball
Link:http://acm.split.hdu.edu.cn/showproblem.php?pid=1556#include#include#includeusing namespace std;typedef long long LL;#define lowbit(i) (i&(-i))const int N = 100010;int tree[N];int n;v原创 2017-09-06 16:34:59 · 240 阅读 · 0 评论 -
【二维树状数组】poj 2155 Matrix
Link:http://poj.org/problem?id=2155#include#include#includeusing namespace std;typedef long long LL;#define lowbit(i) (i&(-i))const int N = 1010;int tree[N][N];int n;void add(int x,int y,i原创 2017-09-06 18:22:43 · 203 阅读 · 0 评论 -
单向链表操作总结
1.链表的建立:struct Listnode{ Datatype data; struct Listnode *next;};顺序链表: head指向第一个创造pre的新空间 rear不断更新,作为前一个pre空间的地址 pre不断创造新空间struct ListNode *pre,*rear,*head;head = rear = (ListNode *)malloc原创 2016-10-27 22:17:41 · 354 阅读 · 0 评论