这是我的伪代码:
for all u in V:
degree[u]=0
for all (u,w) in E:
degree[u] = degree[u]+1
for all u in V:
twodegree[u]=0
for all (u,w) in E:
twodegree[u]=twodegree[u]+degree[w]
此代码尝试计算无向图中u的邻居的度数(度数 - 你所拥有的邻居的数量或其上的#的边数)之和。但是我无法理解这两个for循环可以有人请解释究竟是什么程度[u] =度[u] +1和twodegree [u] = twodegree [u] +度[w]做,(我知道它的计数学位的总和,但我只是不知道怎么样?有人可以解释一下这个算法在u和w方面是如何工作的吗?
答案 0 :(得分:0)
此算法假设顶点在列表V中表示为索引。边缘在列表E中表示为元组。我认为此算法适用于基于“for all(u,w)in”的有向边。 E:”。有向边是仅沿一个方向前进的边,所以在元组(u,w)中,u将是边缘离开去w的节点。
#first loop will calculate the number of edges directly adjacent to each vertex
for all u in V:
degree[u]=0 # initializes the number to 0
for all (u,w) in E: #find all tuples that contain u
degree[u] = degree[u]+1 #add 1 for each edge in list
# The second loop will calculate a slightly different metric but
# it follows the same algorithm as the first
for all u in V:
twodegree[u]=0
for all (u,w) in E:
twodegree[u]=twodegree[u]+degree[w]
“E:中的所有(你,w)”包含一个隐含的条件,它创建一个E的子列表,它只包含以u为第一个元素的元组。