【发布时间】:2014-01-22 19:16:30
【问题描述】:
我有一个由邻接表表示的无向图。我正在尝试从图中读取唯一的边(因为它是无向的,如果考虑 0-1,则不应该是 1-0)。现在,我在想我会使用邻接列表中的一个字段来表示已经读取了一条边,但即使要设置它,我也必须遍历一个顶点列表。有没有好的方法来做到这一点?
【问题讨论】:
标签: c++ algorithm data-structures adjacency-list
我有一个由邻接表表示的无向图。我正在尝试从图中读取唯一的边(因为它是无向的,如果考虑 0-1,则不应该是 1-0)。现在,我在想我会使用邻接列表中的一个字段来表示已经读取了一条边,但即使要设置它,我也必须遍历一个顶点列表。有没有好的方法来做到这一点?
【问题讨论】:
标签: c++ algorithm data-structures adjacency-list
考虑将您已经遍历的内容存储在 unordered_map 中,并在您遍历时填充它。您可以让它们的键是一对 (node1, node2) 并且条目是您需要保留的关于该边的任何辅助信息,然后在遍历时查找是否有 (node1, node2) 或 (node2, node1)在 unordered_map 中。如果你这样做,边缘如果不是唯一的。
【讨论】: