首页 > 其他分享 >模板 - 数据结构

模板 - 数据结构

时间:2024-08-09 19:49:21浏览次数:12  
标签:node pre return nxt int fa 数据结构 模板

链表

定义

struct Peter{
	int val;
	int nxt,pre;
}node[M];
int idx=0;

初始化

inline void Init() // head:0; tail:n+1
{
	node[0]={0,n+1,0};
	node[n+1]={0,n+1,0};
	return;
}

p 后插入 val

inline void insert(int p,int val)
{
	node[++idx]={val,node[p].nxt,p};
	node[node[p].pre].pre=idx,node[p].nxt=idx;
	return;
}

删除 p

inline void remove(int p)
{
	node[node[p].nxt].pre=node[p].pre;
	node[node[p].pre].nxt=node[p].nxt;
	return;
}

并查集

定义 & 初始化

int fa[N];
void uInit()
{
	for(int i=1;i<=n;i++)
		fa[i]=i;
	return;
}

查询

int uask(int x)
{
	if(fa[x]==x) return fa[x];
	else return fa[x]=uask(fa[x]);
}

合并

void merge(int x,int y)
{
	fa[ask(y)]=ask(x);
	return;
}

标签:node,pre,return,nxt,int,fa,数据结构,模板
From: https://www.cnblogs.com/jerrycyx/p/18351396

相关文章

  • 【C++】模板(相关知识点讲解 + STL底层涉及的模板应用)
    目录模板是什么?模板格式模板本质函数模板格式介绍显式实例化模板参数匹配原则类模板类模板的实例化非类型模板参数模板特化——概念函数模板特化类模板的特化全特化半特化偏特化三种类特化例子(放一起比较)模板分离编译STL中比较经典的模板应用(不包含argus)......
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——4.模板
    1.泛型编程如何实现一个通用的交换函数呢?voidSwap(int&left,int&right){inttemp=left;left=right;right=temp;}voidSwap(double&left,double&right){doubletemp=left;left=right;right=temp;}voidSwap(char&left,char&right)......
  • 【数据结构】关于栈你必须知道的内部原理!!!
    前言:......
  • redis数据结构
    redis数据类型 stringlisthashsetzsetHyperLogLogGEOBloomFilter(布隆过滤器)HyperLogLog基本概念:Redis在2.8.9版本添加了HyperLogLog结构。RedisHyperLogLog是用来做基数统计的算法,所谓基数,也就是不重复的元素。优点在输入元素的数量或者体积非常......
  • 数据结构之二叉树的顺序存储结构与链式存储结构
    一、顺序存储结构1.定义与特点顺序存储结构是指用一组地址连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素。完全二叉树和满二叉树采用顺序存储比较合适,因为它们的结点序号可以唯一地反映结点之间的逻辑关系,从而既能最大地节省存储空间,又能利用数组元......
  • 问题 K: 数据结构基础11-图的深度优先遍历
    题目描述读入一个邻接矩阵存储的无向图,输出它的深度优先遍历序列。  输入第1行1个整数n,表示图中的顶点数,2<=n<=100接下来的n行是一个n*n的邻接矩阵,a[i][j]=1表示顶点i和顶点j之间有直接边相连,a[i][j]=0表示没有直接边相连,保证i=k时a[i][j]=0,且a[i,j]=a[j,i].输出输......
  • 25版王道数据结构课后习题详细分析 第三章栈、队列和数组 3.1 栈 选择题部分
    一、单项选择题————————————————————————————————————————解析:栈和队列的逻辑结构都是相同的,都属于线性结构,只是它们对数据的运算不同。正确答案:B————————————————————————————————————......
  • 浙大数据结构慕课课后题(03-树2 List Leaves)
    题目要求:给定一棵树,您应该按照从上到下、从左到右的顺序列出所有叶子。输入规格: 每个输入文件都包含一个测试用例。对于每种情况,第一行都给出一个正整数N(<=10),这是树中节点的总数--因此节点的编号从0到N-1.然后N行紧随其后,每行对应一个节点,并给出节点的左右子节点......
  • [数据结构] 划分树
    介绍划分树,一种数据结构,和线段树很像,常用来解决求区间第$k$小的问题,支持在线,但不支持修改,时间复杂度:建树$\Theta(n\logn)$+单次查询$\Theta(\logn)$,空间复杂度$\Theta(n\logn)$,在这种问题及其扩展问题上具有优良的性能,但其它问题就凸显出其局限性;思想划分......
  • 【线段树合并/树上差分】[P4556 [Vani有约会] 雨天的尾巴 /【模板】线段树合并
    【线段树合并/树上差分】P4556[Vani有约会]雨天的尾巴/【模板】线段树合并思路对\(x,y,lca(u,v),fa_{lca(u,v)}\)四个点进行树上差分,然后用线段树合并动态权值线段树。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;template<classNode>str......