当前位置: 首页 > 知识库问答 >
问题:

给出从图中删除顶点的顺序,以便不会断开图的连接

韩高峯
2023-03-14

这是史蒂文·斯基纳(StevenSkiena)提出的算法设计问题(用于面试准备):

图G的一个连接点是一个顶点,其删除与G断开。设G是一个有n个顶点和m条边的图。给出一个简单的O(n m),该O(n m)可以为n个顶点找到一个删除顺序,以便没有删除会断开图形。

这就是我的想法:

>

  • 在图上运行DFS并不断更新每个节点最古老的可达祖先(我们根据它来决定它是桥切节点、父可爱节点还是根切节点)

    如果我们找到一个叶节点(顶点)或不是关节顶点的节点,请将其删除。

    在DFS的最后,我们会留下图中所有被发现是关节顶点的节点

    当铰接顶点保持不变时,图形将保持连接。我已经在几张图表上尝试过了,它似乎奏效了,但对于这本书来说,它感觉太简单了。

  • 共有3个答案

    澹台宾白
    2023-03-14
    1. 利用DFS跟踪每个顶点的退出时间
    2. 按记录的退出时间顺序删除顶点
    艾宁
    2023-03-14

    假设图是连通的,那么任何随机节点到达一个子图,该子图的生成树可以在不破坏图的连通性的情况下按后序删除。以这种方式重复,直到图全部消失。

    太叔英卫
    2023-03-14

    分两步进行:

    1. 使用任何遍历算法生成图形DAG

    每一步完成时不超过O(m n)

     类似资料:
    • 在这里,我试图断开图中的两个顶点,尽可能减少边的去除。 对此有没有具体的算法? 我找到了一些用最大流最小割问题来解决这一问题的建议,但我还没有得到将这一问题转化为最大流最小割定理的一般思想。同样,在这个过程中,我可能会在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用于自顶点,因为它本身无法形成循环。如果任何一个顶点处都有一个循环,则它不是简单图。 可以在两种情况下考虑顶点度- 无向图 有