给出了无向图的邻接表表示。编写一个函数来计算无向图中的边数。
我知道无向图的边数是n(n-1)/2,但我不知道如何为它编写函数。
考虑到我有一个列表,并使用它,我将计算边缘数。我该怎么开始?

最佳答案

n(n-1)/2是一个简单无向图中的最大边数,而不是每一个图的边数。
假设您有一个邻接列表表示,假设顶点uv之间有一条边。然后,v将出现在u的邻接列表中,u将出现在v的邻接列表中。这对于任何uv都是正确的。
因此,如果计算每个顶点的邻接列表中所有元素的条目总数,结果将是图中边数的两倍。将此值除以2将得到所需的结果。

10-08 00:33