给出了无向图的邻接表表示。编写一个函数来计算无向图中的边数。
我知道无向图的边数是n(n-1)/2,但我不知道如何为它编写函数。
考虑到我有一个列表,并使用它,我将计算边缘数。我该怎么开始?
最佳答案
n(n-1)/2
是一个简单无向图中的最大边数,而不是每一个图的边数。
假设您有一个邻接列表表示,假设顶点u
和v
之间有一条边。然后,v
将出现在u
的邻接列表中,u
将出现在v
的邻接列表中。这对于任何u
和v
都是正确的。
因此,如果计算每个顶点的邻接列表中所有元素的条目总数,结果将是图中边数的两倍。将此值除以2将得到所需的结果。