博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
并查集(Disjiont Set)
阅读量:3944 次
发布时间:2019-05-24

本文共 879 字,大约阅读时间需要 2 分钟。

并查集的最大作用是检测一个图上面存不存在环。

在这里插入图片描述
无向图,六个顶点
显然 1-2-4-3连成一个环

#include
#include
#define VERTICES 6void initialise(int parent[]){
int i; for(i=0;i

进行优化后:

#include
#include
#define VERTICES 6void initialise(int parent[],int rank[]) {
int i; for(i=0; i
rank[y_root]) {
parent[y_root]=x_root; } else if(rank[y_root]>rank[x_root]) {
parent[x_root]=y_root; } else {
parent[x_root]=y_root; rank[y_root]++; } return 1; }}int main(void) {
int parent[VERTICES]= {
0}; int rank[VERTICES]= {
0}; int edges[6][2]= {
{
0,1},{
1,2},{
1,3},{
2,4},{
3,4},{
2,5} }; initialise(parent,rank); for(int i=0; i<6; i++) {
int x=edges[i][0]; int y=edges[i][1]; if((union_vertices(x,y,parent,rank)==0)) {
printf("Cycle detected!\n"); exit(0); } } printf("no cycle found.\n"); return 0;}

转载地址:http://seawi.baihongyu.com/

你可能感兴趣的文章
电信数据挖掘之流失管理
查看>>
电信运营商如何进行客户细分
查看>>
c++名库介绍
查看>>
boost1.43在win7下的编译
查看>>
VC++工程如何脱离VSS环境
查看>>
转 hook 自绘原理
查看>>
NSIS 脚本介绍
查看>>
记录通讯日志的函数
查看>>
c++ 标准容器介绍与对比
查看>>
web DB优化思路
查看>>
敏捷笔记
查看>>
SOA业务理解与应用
查看>>
Google File System(中文翻译)
查看>>
Google's BigTable 原理 (翻译)
查看>>
MapReduce:超大机群上的简单数据处理
查看>>
设计模式笔记(转载)
查看>>
加站点加入IE的可信站点做法
查看>>
软件研发中的《破窗理论》
查看>>
敏捷的三种误区和五种改进
查看>>
用数字来看某知名B2C网站的发展内幕和隐私
查看>>