这是史蒂文·斯基纳(StevenSkiena)提出的算法设计问题(用于面试准备):
图G的一个连接点是一个顶点,其删除与G断开。设G是一个有n个顶点和m条边的图。给出一个简单的O(n m),该O(n m)可以为n个顶点找到一个删除顺序,以便没有删除会断开图形。
这就是我的想法:
>
在图上运行DFS并不断更新每个节点最古老的可达祖先(我们根据它来决定它是桥切节点、父可爱节点还是根切节点)
如果我们找到一个叶节点(顶点)或不是关节顶点的节点,请将其删除。
在DFS的最后,我们会留下图中所有被发现是关节顶点的节点
当铰接顶点保持不变时,图形将保持连接。我已经在几张图表上尝试过了,它似乎奏效了,但对于这本书来说,它感觉太简单了。
假设图是连通的,那么任何随机节点到达一个子图,该子图的生成树可以在不破坏图的连通性的情况下按后序删除。以这种方式重复,直到图全部消失。
在这里,我试图断开图中的两个顶点,尽可能减少边的去除。 对此有没有具体的算法? 我找到了一些用最大流最小割问题来解决这一问题的建议,但我还没有得到将这一问题转化为最大流最小割定理的一般思想。同样,在这个过程中,我可能会在F和G之间去掉一条边,这是无用的。
我正在寻找一个算法,找到顶点的最小子集,这样从图中移除这个子集(以及连接这些顶点的边),所有其他顶点都变得不连通(即,图将没有任何边)。 null 我有图论的基础知识,所以请原谅任何不正确的地方。
给定无向连通图,查找其删除会断开该图的所有节点对(通过边连接) 没有平行边,也没有将节点连接到自身的边。 这个问题似乎类似于寻找一个连通的无向图的连接点(或桥),但有一个转折点,我们必须移除一对由边连接的顶点(以及所有其他与该对连接的边)。 这是一个家庭作业问题。我一直在尝试解决这个问题,阅读有关DFS和关节点算法(即每个节点的深度和低点)的文章,但这些方法都不能解决这个特定的问题。我查阅了科曼的
我知道在中是一个顶点,去掉后图就断开了。对于Java代码,我访问了以下链接http://algs4.cs.princeton.edu/41undirected/biconnected.Java.html。 在上面的图中没有,因为图不会因为去掉任何一个顶点而断开连接。但是我们可以通过移除一个以上的顶点来使图断开连接,例如,如果我们移除4、6个顶点,图就会断开连接。 如何找到一组顶点,这样在去掉那些顶
本文向大家介绍从视图中删除行会从MySQL的基表中删除行吗?,包括了从视图中删除行会从MySQL的基表中删除行吗?的使用技巧和注意事项,需要的朋友参考一下 是的,从视图中删除行从基表中删除行。让我们通过创建一个新表来了解这一点。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 以下是输出 让我们创建一个视图。创建视图的查询如下
本文向大家介绍图的顶点度,包括了图的顶点度的使用技巧和注意事项,需要的朋友参考一下 它是与顶点V相邻的顶点数。 表示法-deg(V)。 在一个具有n个顶点的简单图中,任何顶点的度为- 顶点可以与除自身以外的所有其他顶点形成边。因此,顶点的度数将取决于图中的顶点数减去1。此1用于自顶点,因为它本身无法形成循环。如果任何一个顶点处都有一个循环,则它不是简单图。 可以在两种情况下考虑顶点度- 无向图 有