有人可以用java代码向我解释这个伪代码吗?

时间:2016-06-26 20:38:27

标签: arrays graph-theory breadth-first-search

以下是BFS的代码,我不明白这在java代码中意味着什么。像.pathlen,箭头等术语我不理解任何一个。任何人都可以澄清吗?感谢。

Image of the code

2 个答案:

答案 0 :(得分:0)

  1. 遍历图g的每个顶点,并将布尔值标记为未访问。

  2. 初始化顶点队列。

  3. 标记并声明起始节点为已访问。

  4. 将起始节点的路径长度设置为0.这将是顶点类中的整数字段变量。

  5. 将第一个节点添加到队列中。

  6. 队列不为空时,请重复以下操作。

  7. 从队列中删除头节点。

  8. 对于与您移除的顶点相邻的每条边,您都要遍历图上的邻接列表或矩阵,并查找靠近它的边。

  9. 如果节点的布尔变量表示没有访问边缘的目的地,那么:

  10. 将边缘的目的地添加到队列中。

  11. 将目标节点从边缘标记为已访问。

  12. 在起始节点的边缘权重之上,在边缘节点的路径长度上添加一个。

  13. 注意:如果您有加权图表,那么您可以在步骤#12上执行+1以外的操作。但是,如果你对BFS进行加权,那么你不应该终止BFS,直到它在所有节点上运行。

答案 1 :(得分:-1)

Pathlen只是一个成员变量。可以把它想象成访问java类的公共变量的语法。

箭头语法是赋值的语法,相当于java的=。这意味着“把东西放在右边,然后在左边分配那个值。”