树(学习)
有关树的学习
Probie Tao
这个作者很懒,什么都没留下…
展开
-
树——二叉树——线索二叉树
一、线索二叉树(1)什么是线索化将二叉树以某种次序将其遍历, 得到线性序列, 就是将非线性结构进行线索化。线索化的优点就是可以很快地得到前驱或后继。如果保存线索化的线性序列保存二叉树地线索化序列的其中一种方法就是在结点上加两个指针, 一个指向前驱一个指向后继, 这样的缺点就是存储密度大大降低。另一种方法就是加两个标记 充分利用空指针。实现方法一存储结构leftLTagd...原创 2019-11-15 17:40:43 · 348 阅读 · 0 评论 -
树——无向图深度优先生成森林——生成和存储算法
深度优先生成森林对于无向非连通图, 对其每一个连通分量的DFS搜索, 所经过V点集和E边集合,就会构成一个生成树。 所有生成树就会组成一个生成森林, 这个森林就叫深度优先生成森林。代码:改代码 是 通过深度优先搜索生成 森林, 并将其通过邻接兄弟表示法存储。#include<bits/stdc++.h>using namespace std;const int maxn =...原创 2019-11-06 19:24:14 · 2384 阅读 · 0 评论 -
树——查询区间第K大的数————主席树(模板0.5)
主席树——>一、不带修改版模板#include<bits/stdc++.h>using namespace std;const int maxn = 1e6+50;int Q, cnt, x, y, k;// Q 表示询问次数, cnt表示结点总数,int T[maxn], ls[4*maxn], rs[4*maxn], sum[4*maxn];int a[maxn...原创 2019-08-28 15:24:05 · 172 阅读 · 0 评论 -
树——查询和修改————树状数组(模板1.5)
int n;int a[1005],c[1005]; //对应原数组和树状数组int lowbit(int x){ return x&(-x);}void updata(int i,int k){ //在i位置加上k while(i <= n){ c[i] += k; i += lowbit(i); }}...原创 2019-08-04 16:34:05 · 152 阅读 · 0 评论 -
树——二维树状数组————POJ1195+二维树状数组(模板)
http://poj.org/problem?id=1195#include <iostream>#include <cstdio>#include <cstring>#include<cmath>using namespace std;const int maxn = 1e3+50;long n;long c[maxn][maxn]...原创 2019-08-05 09:05:45 · 138 阅读 · 0 评论 -
树——区间查询和修改问题————线段树(模板1.0)
普通区间修改和查询 (带懒惰标记)模板#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+50;struct node{ int l, r;//区间左右端点 int sum;//区间信息, 可以是最值、 区间和、等等 int lazy;//懒惰标记 }Segtr[maxn*4...原创 2019-08-28 16:01:33 · 160 阅读 · 1 评论