树形结构 —— 并查集 —— 并查集的删除操作
对于删除操作,在完美的并查集中(所有节点都直接连接在根节点上),理论上只要把要删除的节点的上级重新指向自己就可以了。
但是实际情况中,并查集形成的树的形态都是不可预估的,如果直接将一个节点指向自己可能会将他的下级和他一起删除,这就与最初的想法违背了,所以在一个需要删除的并查集中初始化时就要处理一下:
- 首先可以将每一个点都设立一个虚拟父节点,这样根节点就是我们设立的虚拟节点,类似于将每个节点放到一个盒子中。
- 如果删除某点,那么可以修改当前节点的父节点来导致当前点的孤立,即删除时把这个节点从当前盒子拿出来,放到另一个盒子中。
- 由于节点之间都是通过盒子来确定关系的,所以盒子中元素是否存在并不影响节点之间的关系。
以下图为例:
如果要删除 2 号节点,那么我们把 2 拿出来放到另一个盒子中就可以了,可以看到原来的那个树结构并没有发生变化。但是 2 已经不在这里面了
实现:
//假设最多会有n个节点,就从n+1开始作为假节点int index;//存放盒子节点使用到哪一个了
void init(int n)
{index = n;for(int i=0;i<n;i++)//普通节点指向他的盒子节点pre[i]=index++;for(int i=n;i<2*n;i++)//盒子节点指向自己就像一般的并查集一样pre[i]=i;
}void del(int n)
{pre[n]=index; //将要删除的节点重新指向一个新的盒子pre[index]=index++ ; //盒子节点指向自己
}
树形结构 —— 并查集 —— 并查集的删除操作相关推荐
- 牛客多校8 - All-Star Game(线段树分治+并查集按秩合并的撤销操作)
题目链接:点击查看 题目大意:有 n 个球员和 m 个球迷,一个球员可能是多个球迷的粉丝,需要选择最少的球员进行比赛,使得所有的球迷都愿意观看(对于每个球迷来说,都有至少一个其喜欢的球员入选比赛) 对 ...
- 树形结构 —— 并查集
[概述] 并查集(Union-Find Set)是一种用于分离集合操作的抽象数据类型,其处理的是集合(set)之间的关系,一般处理的是图的连通分量,当给出两个的元素的一个无序对 (a,b) 时,需要快 ...
- hdu 2473(并查集+删除操作)
解题思路:这道题有并查集的删除操作,如果直接对这一棵树进行删除节点操作肯定是很困难的.所以可以建立虚拟节点,只要有一个节点要被删除,就直接把它投影到虚拟节点上,即用这个虚拟节点来代替我们要删除的节点. ...
- element ui tree增删改查_clientgo连接K8s集群进行pod的增删改查
背景 最近在看client-go源码最基础的部分,client-go的四类客户端,RestClient.ClientSet.DynamicClient.DiscoveryClient.其中RestCl ...
- HDU 2473 Junk-Mail Filter(并查集的删除操作)
题目地址:HDU 2473 这题曾经碰到过,没做出来. .如今又做了做,还是没做出来. ... 这题涉及到并查集的删除操作.想到了设一个虚节点,可是我把虚节点设为了要删除的点的父节点.一直是栈溢出,目 ...
- 绿建科技加密图纸查看器安装_施工图看不懂?1.1G工程施工图纸详解,253页图文合集一查就清楚...
施工图看不懂?1.1G工程施工图纸详解,253页图文合集一查就清楚 只要是对建筑行业,有所了解的朋友都清楚,钢筋施工图纸对于建筑物,有着举足轻重的地位!一点都不得马虎大意,接触建筑行业,第一步还是需 ...
- Almost Union-Find UVA - 11987(并查集的删除操作)
题意:求出每个集合的元素个数,及总和,给出三个操作: 1 将含有a元素和b元素的集合合并:2 将a元素放入含有b元素的集合中:3 输出a元素所在集合的元素个数及总和: 思路:正常并查集,与并查集元素的 ...
- vue实现树形结构增删改查
其实很多公司都会有类似于用户权限树的增删改查功能,正好最近我刚写了一个树形结构的增删改,在这里和大家分享一下,如果有不合理的地方欢迎评论,我会尽快优化~~ 先附上一下效果图 这个是没有点击编辑时,产品 ...
- 洛谷 P1892 [BOI2003]团伙(并查集变种 反集)
[BOI2003]团伙 题目描述 现在有 n n n 个人,他们之间有两种关系:朋友和敌人.我们知道: 一个人的朋友的朋友是朋友 一个人的敌人的敌人是朋友 现在要对这些人进行组团.两个人在一个团体内当 ...
最新文章
- java case or_java – 在CriteriaBuilder中使用子句和’case w...
- Micron Flash芯片识别心得
- dpkg安装软件流程_ubuntu安装搜狗输入法linux版
- Deep Residual Learning for Image Recognition(MSRA-深度残差学习)
- Kong 发布 Kong Brain 和 Kong Immunity,可进行智能自动化和适应性监控
- boost使用Proto转换来实现的例子
- php 标题去重复思想,WordPress网站发布文章时如何防止发布重复标题的文章?
- 2020运动相机推荐_2020年优秀户外运动相机推荐
- Mybatis_3.基于注解的增删改查
- 100句自我激励的名言佳句
- サファイア奇跡 2
- Tess4J 安装及使用介绍
- 游戏素材网站推荐!!!
- js 跨域获取cookie
- 关于等价鞅、反等价鞅、剀利公式、赌徒输光定理
- 微信小程序云开发 数据库
- html背景音乐自动播放embed,HTML中添加音乐video embed audio
- 服务器physx性能测试,望穿秋水! PhysX卡性能测试首度曝光
- Jointly Embedding Knowledge Graphs and Logical Rules
- vue mand-mobile ui加class不起作用的问题 css权重问题