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

图形算法,为边指定适当的方向

东方高洁
2023-03-14

有一个无向图G=(V,E),我如何给每条边指定一个方向,使每个顶点在O(V E)时间内的度数最多为一?应该有两个条件:

情况1。G没有循环,我应该使用什么?BFS或DFS,以及如何?

情况2。G最多有一个循环如果有循环,我们如何选择指向同一顶点的两条边的方向?

共有1个答案

杜俊逸
2023-03-14

对于任何只有一条边附加到它的顶点,如果您可以解决这个难题,那么在确定附加到该顶点的唯一边的方向指向该顶点后,仍然可以解决它。

因此,我会在每个顶点上使用计数器来跟踪附加到该顶点的边的数量,并重复设置一端在没有其他附加边的顶点上的边的方向,然后从图中删除这些边及其顶点(或将它们标记为已删除)并继续。

如果此过程以空图终止,则没有循环,并且您已经解决了问题。

如果它以一个或多个循环终止,其中每个顶点都有两条边附着到它,则为一条边拾取方向,并在循环中跟随该方向,为遇到的每条边拾取唯一可能的方向。如果有多个循环,则必须多次执行此操作才能为所有剩余边设置方向。

如果这以一个有两条以上边的顶点结束,并且每个顶点都有一条以上边,那么你就有了比循环更复杂的东西,路径和方向无法分配,因此每个顶点最多只有一个。

 类似资料:
  • 我有两种相互依赖的方法。 返回 ,并从mainMethod返回

  • 把重叠的圆组合成多边形的最好方法是什么? 给出了一系列直径固定的圆的中心点。 这似乎是一个相当常见的问题(GIS系统、向量等)。这是可能的通过谷歌地图API,但我正在寻找实际的算法。 提前感谢!

  • 我接到一个任务,要找到一种算法,将图G(V,E)分成几对相邻边(给图上色,这样每对相邻边都有相同的颜色)。 我试图通过绘制一些随机图表来解决这个问题,并得出了一些结论: 如果顶点连接到2(4,6,8…)阶数为1的顶点构成一对边 如果阶数为1的顶点直接连接到循环,则循环的哪条边与单条边配对并不重要 然而,我无法得出任何其他结论,所以我尝试了另一种方法。我考虑过使用DFS,找到连接点,并将图划分为具有

  • 我有一个geopandas数据框,由一个id和一个由2D点填充的几何列组成。我想为每个唯一id连接点以创建一个多边形,以便我的新数据帧将多边形作为其几何体。我的代码当前看起来像这样: 它创建了一个多边形,但当我指定新变量时,它会显示 这很有意义,因为它仍然只是一个坐标列表,而不是实际的多边形对象。有人知道如何将它变成一个实际的多边形对象,我可以将它添加到geopandas上的列中吗 提前感谢:)

  • 我需要创建一个十六进制瓷砖地图,最多使用19种颜色,其中每种颜色必须保持至少3瓷砖的距离。然而,我不需要使用所有19种颜色。如果有一种算法可以用少于19种颜色来解决这个距离限制,这是完全可以的。 贝克曼-夸尔斯定理[1]看起来是相关的,有一个7色瓷砖图显示了相同颜色的瓷砖彼此之间保持2的距离。 但是我很难找到一个可以理解的描述,甚至是构建距离为3的十六进制贴图的实现。 [1]http://de.w