通过一个顶点删除创建一个常规图形

问题描述 投票:0回答:1

问题:给定一个无向图,使用邻接列表实现。我正在寻找一种算法,通过一个顶点删除将其转换为规则图(每个顶点具有相同的度数)。

例如:

c algorithm graph
1个回答
1
投票

迭代所有顶点,按度数对它们进行分区。

如果所有都具有相同的度数,则只有存在具有度数n - 1的顶点才有可能。

如果你可以将它们划分为2个不同的度数集:让我们用较低的度数调用X,用较高的度数调用Y.让我们调用dg(X)和dg(Y)这些顶点的程度

  • 如果其中一个分区只有1个顶点,并且其度数为0或另一个集合中的顶点数量,则将其删除
  • 如果dg(Y) - dg(X)> 1,则不可能
  • 如果dg(Y) - dg(X)= 1且| Y | = dg(X),检查X中的顶点是否连接到Y的所有顶点并将其删除。
  • 如果dg(Y) - dg(X)= 1且| X | = dg(Y),检查Y中的顶点是否连接到X的所有顶点并将其删除。
  • 任何其他情况都不可能有2个分区

如果你可以分成3组:

  • 其中一个顶点必须只有一个顶点,并且该顶点必须连接到另一个最高度集的所有顶点,并且不能连接到其余的顶点。其他最高学位集与剩余集之间的学位差也必须为1

任何其他情况,它是不可能的

© www.soinside.com 2019 - 2024. All rights reserved.