【问题标题】:reading unique edges from graph adjacency list representation从图邻接表表示中读取唯一边
【发布时间】:2014-01-22 19:16:30
【问题描述】:

我有一个由邻接表表示的无向图。我正在尝试从图中读取唯一的边(因为它是无向的,如果考虑 0-1,则不应该是 1-0)。现在,我在想我会使用邻接列表中的一个字段来表示已经读取了一条边,但即使要设置它,我也必须遍历一个顶点列表。有没有好的方法来做到这一点?

【问题讨论】:

    标签: c++ algorithm data-structures adjacency-list


    【解决方案1】:

    考虑将您已经遍历的内容存储在 unordered_map 中,并在您遍历时填充它。您可以让它们的键是一对 (node1, node2) 并且条目是您需要保留的关于该边的任何辅助信息,然后在遍历时查找是否有 (node1, node2) 或 (node2, node1)在 unordered_map 中。如果你这样做,边缘如果不是唯一的。

    【讨论】:

    • 所以,在此操作之后,我必须按边的权重对边进行排序。地图似乎让这变得困难
    • 哦!那么也许使用一套呢?那里的所有元素都必须是唯一的,并且具有严格的顺序。 cplusplus.com/reference/set/set
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    相关资源
    最近更新 更多