Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >寻找图中所有结点的算法设计

寻找图中所有结点的算法设计
EN

Stack Overflow用户
提问于 2019-10-03 06:05:41
回答 2查看 365关注 0票数 1

在游戏中,一组节点通过一些单向边连接在一起。在每个节点上都有一个对象需要拾取。如果可能的话,设计一种算法来找到一条可以用来收集所有对象的路径。为了使您的任务更容易,您知道从任何节点开始,无论您沿着什么路径,您将永远不会回到相同的节点。

这个问题要求我们做一些“如果可能的”.Therefore,我在想,如果图是直接的,并且没有到节点本身的循环,那么可以使用BFS遍历整个图。因为如果图是有向无环图,这意味着不可能从一条边开始遍历整个图。

EN

回答 2

Stack Overflow用户

发布于 2019-12-03 00:42:28

找到访问有向无环图中所有节点的路径的最佳方法是拓扑排序,因为它对顶点进行排序,使得对于从顶点a到b的每条有向边ab,a在排序中排在b之前。这很重要,因为在拓扑排序中,您从没有传入边的顶点开始,这确保您的路径从右边的顶点(路径的开始)开始,然后使用DFS遍历图的其余部分。虽然BFS可以遍历图形,但是没有办法知道BFS是从路径的开始处开始的。因为你不能返回到一个节点,所以如果BFS从具有传入边的边开始,它将永远不会到达该节点的父节点,因为这将是一个循环,并且永远不会到达父节点,因此您将无法找到图中的所有节点。因此,按照拓扑排序的描述,从没有传入边的折点开始是很重要的

票数 1
EN

Stack Overflow用户

发布于 2019-12-03 01:20:42

这类似于哈密顿路径问题。哈密顿路径是有向图或无向图中只访问每个顶点一次的路径。在您的示例中,顶点现在就是节点。如果你能找到一条只访问每个节点一次的路径,这意味着你正在尝试寻找哈密顿路径。我不认为你可以使用拓扑排序来解决你的问题,你可以谷歌拓扑排序到底做了什么。哈密顿路径问题被称为NP-完全问题,这意味着使用任何现有的算法都不能在多项式时间内解决它。

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

https://stackoverflow.com/questions/58213173

复制
相关文章
社交网络图中结点的“重要性”计算
在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。
叶茂林
2023/07/30
2190
算法-寻找两个链表的第一个公共结点
本文介绍了如何寻找两个链表的第一个公共结点,包括两个链表的长度、寻找公共结点的方法和代码实现。
chaibubble
2018/01/02
5130
算法-寻找两个链表的第一个公共结点
[Leetcode]删除链表中等于val 的所有结点
使用前后两个指针,cur指向当前位置,prev指向前一个位置,通过改变指向和释放结点来删除val
阿伟@t
2023/10/10
2070
[Leetcode]删除链表中等于val 的所有结点
PTA 社交网络图中结点的“重要性”计算(30 分)
该文介绍了计算给定社交网络图中结点的重要性,以及基于紧密度中心性、介数中心性和接近中心性等指标的计算方法。首先介绍了相关概念和计算方法,然后给出了一些示例和输入输出格式。
Kindear
2017/12/29
1.1K0
PTA 社交网络图中结点的“重要性”计算(30 分)
设计在单链表中删除值相同的多余结点的算法
这是一道算法题,写算法题最恨没有图解,懂的人不需要看你的文章,不懂的你再怎么讲解也没有几张图解来得简单易懂,下面来分析一下这道题。
wangweijun
2022/01/10
2.4K0
设计在单链表中删除值相同的多余结点的算法
java——删除单链表中所有重复的结点
2.寻找并去除 重复的结点 先定义一个引用cur,当链表不为空、不能发生空指针异常,且cur.next.data 等于cur.data的时候,让cur往后走一步,直到不相等的时候,将结点连接到新建节点node后,此时删除重复节点之后的链表就是所得到的值。
小雨的分享社区
2022/10/26
4900
java——删除单链表中所有重复的结点
半个【弗洛伊德算法】2-3 社交网络图中结点的“重要性”计算 (25分)
在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。
韩旭051
2020/06/23
5640
半个【弗洛伊德算法】2-3 社交网络图中结点的“重要性”计算 (25分)
找出平面上的特殊无向图中的所有三角形的算法
问题提出背景:在非结构化三角形网格生成过程中,若采用前沿推进法,在推进过程中是不好构造三角形的(而且也没有要),最好在把所有的边都连好以后再找出所有三角形,于是提出了问题:在由三角形构成的平面无向图中如何找出所有三角形?
byronhe
2021/06/25
3520
算法训练 结点选择
有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?
刘开心_1266679
2019/02/14
7400
Java数据结构与算法(3) 寻找中序遍历时的下一个结点
前言 今天一天没有什么状态,学习效率太低了。今天重新温习了一下树的遍历,如何寻找中序遍历的下一个结点。接下来的计划是学习Spring Boot 和 算法与数据结构。 ---- 思路 算法与数据结构是我最薄弱的一环。每次写关于算法的代码时,都无法下手,经常陷入到逻辑的死胡同里。真心感觉自己的逻辑能力好差,思路混乱。程序员最重要的是思考和逻辑能力,只有把思路理清楚了,代码才能一气呵成。 中序遍历:首先按照中序遍历的方式去访问根结点的左子树,然后访问根结点,最后按照中序遍历的方式去访问根结点的右子树。 首先
用户2032165
2018/06/05
4680
MVC 通过Jquery获取视图中所有控件的值
在使用MVC开发Web时,有需求要将页面所有控件及其值传递到客户端与预定义的界面字段配置进行匹配。
aehyok
2018/09/11
2K0
Python字符串操作--寻找所有匹配的位置
今天小编跟大家分享一下,如何从一个字符串中找到所有匹配的子字符串的位置。例如我们有下面这一句话,我们需要从中找到所有‘you’出现的位置。
生信交流平台
2020/08/06
7.9K0
Python字符串操作--寻找所有匹配的位置
JAVA 通用寻找对象间差异的所有字段
最近在做某个项目中,需要查找多个属性间不同的字段,但这些属性很多,一个一个的字段比较,很折腾,所以就自己写了一个快速的框架. 1.定义需要对比的结果,有新增,变更,删除,无变化四种结果
星痕
2020/04/01
2.7K0
LeetCode 1469. 寻找所有的独生节点
二叉树中,如果一个节点是其父节点的唯一子节点,则称这样的节点为 “独生节点” 。 二叉树的根节点不会是独生节点,因为它没有父节点。
Michael阿明
2020/07/13
6570
[PHP] 算法-删除链表中重复的结点的PHP实现
删除链表中重复的结点: 1.定义两个指针pre和current 2.两个指针同时往后移动,current指针如果与后一个结点值相同,就独自往前走直到没有相等的 3.pre指针next直接指向current指针的后一个,把相同的都跳过 pre=linkList current=linkList while current!=null if current->data==current->next->data value=current->data while val
唯一Chat
2019/09/10
6200
Raft: 寻找可理解的共识算法(完)
Figure 10: Switching directly from one configuration to another is unsafe because different servers will switch at different times. In this example, the cluster grows from three servers to five. Unfortunately, there is a point in time where two different leaders can be elected for the same term, one with a majority of the old configuration (Cold) and another with a majority of the new configuration (Cnew).
s09g
2022/07/06
5080
Raft: 寻找可理解的共识算法(完)
Raft: 寻找可理解的共识算法(1)
In Search of an Understandable Consensus Algorithm (Extended Version)
s09g
2022/07/06
4810
Raft: 寻找可理解的共识算法(1)
☆打卡算法☆LeetCode 84、柱状图中最大的矩形 算法解析
链接:84. 柱状图中最大的矩形 - 力扣(LeetCode) (leetcode-cn.com)
恬静的小魔龙
2022/08/07
2800
☆打卡算法☆LeetCode 84、柱状图中最大的矩形  算法解析
LeetCode 865. 具有所有最深结点的最小子树(递归)
返回能满足“以该结点为根的子树中包含所有最深的结点”这一条件的具有最大深度的结点。
Michael阿明
2020/07/13
4720
Raft: 寻找可理解的共识算法(2)
Figure 2: A condensed summary of the Raft consensus algorithm (excluding membership changes and log compaction). The server behavior in the upper-left box is described as a set of rules that trigger independently and repeatedly. Section numbers such as §5.2 indicate where particular features are discussed. A formal specification [31] describes the algorithm more precisely.
s09g
2022/07/06
5490
Raft: 寻找可理解的共识算法(2)

相似问题

寻找图中所有割线的算法

14

Swi prolog在有向图中寻找结点的所有邻居

10

寻找图中所有路径的理想算法

13

寻找图中所有传递闭包循环的适当算法?

13

寻找所有临界路径的算法

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档