Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >向稀疏图中添加随机边时跟踪循环

向稀疏图中添加随机边时跟踪循环
EN

Stack Overflow用户
提问于 2018-03-17 09:05:15
回答 2查看 63关注 0票数 1

场景:我有一个图,表示为节点的集合(0.n)。这张图中没有边。

在这个图中,我随机连接节点,每次连接一个节点。另一种说法是,我在图中添加随机边,一次加一条。

我不想在这个图中创建简单的循环。

在我添加随机边时,是否有一种简单和/或非常有效的方法来跟踪循环的创建?使用图遍历,很容易,因为我们只需要跟踪单个路径的两个端节点。但是,在这种情况下,我们有很多需要跟踪的路径--有时这些路径组合成一条更大的路径,我们也需要跟踪这些路径。

我尝试过几种方法,这些方法主要是维护“外部节点”列表以及它们内部的一组节点,然后当我在其中添加一个边缘并对其进行更新时。但是,它变得非常复杂,特别是如果我去掉了图中的一个边。

我试图搜索算法或讨论这一点,但我真的找不到任何东西。我知道我可以做一个BFS来检查周期,但是在每次添加边缘之后,BFS的效率都是如此之低。

EN

回答 2

Stack Overflow用户

发布于 2018-03-17 09:36:30

我在洗澡时想出了可能的解决方案。

我要做的是保持一个n大小的列表,表示该节点在边缘上的次数。

当我添加边(i,j)时,我将增加listi和listj。

如果在添加了edge之后,listi > 1,listj > 1,我将从该边开始执行DFS。

我意识到我不需要BFS,我只需要从上一个添加的边缘开始进行DFS,而且我只需要在它至少有可能在一个周期中出现(它的节点出现两次)时才需要这样做。

我怀疑这是最好的..。也许某种不相交的集合会更好。但这比我以前想过的任何事情都要好。

票数 1
EN

Stack Overflow用户

发布于 2018-03-20 05:27:25

如果跟踪图形中已连接的组件,则可以测试插入的每个边缘是否已包含在同一组件中。如果是的话,那么你插入的边会给你的图引入一个循环。

看看这篇文章,这篇文章似乎对如何做到这一点提供了一些很好的参考:https://cstheory.stackexchange.com/questions/2548/is-there-an-online-algorithm-to-keep-track-of-components-in-a-changing-undirecte

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49339575

复制
相关文章
undefined vs null
许多编程语言都有一个空值(non-value)null:表示存在一个变量但是没有指向一个对象。
前端柒八九
2022/08/25
1.1K0
如何从JavaScript对象中删除属性?
在使用 JavaScript 中的对象时,你可能会遇到需要从对象中完全删除属性的情况。为实现这一点可以有好几个选择:
疯狂的技术宅
2021/04/01
12.4K0
JS中判断null、undefined与NaN的方法
写了个 str ="s"++;  然后出现Nan,找了一会。  收集资料如下判断: 1.判断undefined: 1 2 3 4 var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined"); } 说明:typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"  2.判
庞小明
2018/03/08
5.7K0
主外键关联删除(on delete set null和on delete cascade)
主外键关联,当删除的是父表数据,参照这些要删除的数据,Oracle有三种处理方式:
bisal
2019/01/29
2.9K0
如何删除对象的某个属性(对象属性方法是什么)
const object = { ‘a’: 1, ‘b’: ‘2’, ‘c’: 3 };
全栈程序员站长
2022/07/29
4.5K0
null == undefined ?
最近在看《JavaScript高级程序设计》一书,书中讲到相等操作符(==)时说,要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,但要记住 null == undefined 会返回 true 。的确,在ECMAScript规范中也是这样定义的,但我认为这样来理解这件事情,似乎有些浮于表面,网上也有很多关于这个问题的文章,下面我希望从一个全新的角度来分析 null 和 undefined 的区别,从而理解两者为何会相等:
疯狂的技术宅
2019/03/28
2.5K0
null == undefined ?
Javascript中null和undefined的区别?
null:空值,一般主动赋值才会出现。表示主观上这个变量的值就是空的,比如你去获取蒙奇 D 鸣人的资料,这人不存在,那么返回的值就应该是 null。
IT工作者
2022/01/15
5090
Javascript 中 null和undefined的区别
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
wfaceboss
2019/04/08
7820
JavaScript中undefined与null详解
对于undefined和null我一直知道他们有很多区别,也知道一点关于他们的区别,但却不具体系统,因此总结了一下,主要心得如下:
Javanx
2019/09/04
7700
JavaScript中undefined与null详解
JS中Null与Undefined的区别
Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。 Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。 Screenshot (12).png js 代码 var oValue; alert(oValue == undefined); //output "true" 这段代码显示为true,代表oVlaue的值即为undefined,因为我们没有初始化它。 js 代码 a
前朝楚水
2018/04/02
3.6K0
JS中Null与Undefined的区别
Typescript中undefined与null的区别
ts配置文件中有个选项 "strictNullChecks" 如果设置值为false,那么以下代码都不是问题 ,如果设置为true, 以下代码可以说明undefined和null在ts中的区别
lilugirl
2020/06/28
3.3K0
null 和 undefined
浏览器会弹出窗口显示 undefined。因为对于使用了 var 声明但没有进行初始化定义的变量, 其值默认为 undefined。
Chor
2019/11/08
1.8K0
JavaScript中的null和undefined的区别
1、null 表示没有对象,即该处不应该有值,用法如下: 作为函数的参数,表示该函数的参数不是对象; 作为原型链的终点。 2、undefined 表示缺少值,就是此处应该有一个值,但是还没有定义,情况如下: 变量被声明了,但没有赋值时,就等于undefined; 调用函数时,应该提供的参数没有提供,该参数等于undefined; 对象没有赋值的属性,该属性的值为undefined; 函数没有返回值的时,默认返回undefined;
IT工作者
2021/12/31
7730
python中面向对象VS面向过程
面向过程编程:首先分析出解决问题所需要的步骤(即“第一步做什么,第二步做什么,第三步做什么”),然后用函数实现各个步骤,再依次调用。
全栈程序员站长
2022/09/07
4360
python中面向对象VS面向过程
vs中没有vc_vs中的控件
头文件fstream包含了ifstream、ofstream、fstream三个类,可以通过定义这三个类的对象来实现相对应的文件操作。
全栈程序员站长
2022/09/30
7630
【基础】JavaScript 中 null 和 undefined 的区别?
通过运行代码可以看出null和undefined是相等的,但是当他们做全等比较时,又不等。原因是什么呢?我们再来看下他们的类型:
青年码农
2020/12/17
7780
探索JavaScript中Null和Undefined的深渊
在讨论JavaScript中的原始数据类型时,大多数人都了解基本知识,从String,Number和Boolean开始。这些原语非常简单,可以像您期望的那样起作用。但是,本文将重点介绍称为Null和Undefined的更独特的原始数据类型。是什么使它们相似,不相似以及总体上与众不同。
公众号---人生代码
2021/02/24
7250
vue删除对象的某个属性(js怎么删除对象中的某个元素)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128065.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/26
10.3K0
null 和 undefined 的区别!
许多编程语言都有一个称为null的非值。它指示一个变量当前不指向一个对象,例如,当它还没有初始化的时候。
前端小智@大迁世界
2022/03/22
1.1K0
null和undefined的区别
在Js中null与undefined是两种基本数据类型,都可以用来表示"无"这个概念,但是在语义表达以及实际使用上是有所区别的。
WindRunnerMax
2020/08/27
2.5K0

相似问题

c++中的delete vs NULL vs free

60

删除vs delete[]

49

批量删除(truncate vs delete)

61

new char [] vs new char(),delete() vs delete []

10

正确使用C++中关于char *的delete vs delete[ ]

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文