这里有两个关于安全顶点删除的 excises
5-28。图 G 的一个关节顶点是一个其删除断开 G 的顶点。设 G 是一个具有 n 个顶点和 m 个边的图。给出一个简单的 O(n + m) 算法来找到 G 的一个不是关节顶点的顶点——即 ,其删除不会断开 G。
5-29。继续上一个问题,给出一个 O(n + m) 算法,该算法找到 n 个顶点的删除顺序,使得没有删除会断开图的连接。(提示:想想 DFS/BFS。)
对于5-28,这是我的想法:
我只会做一个dfs,但不完整。完成处理的第一个顶点将是一个非关节顶点,因为它必须是一个叶子,或者一个后边缘指向其祖先的叶子(它也不是一个关节顶点)。
对于 5-29
我还不确定如何做得很好。我想到的是,在图中,循环中的任何顶点都不能安全地删除。此外,如果没有循环,则从 dfs 树向后删除顶点也是安全的。
谁能给我一些提示或告诉我我的想法是对还是错?