在图算法的上下文中,我们通常会得到一个方便的图表示形式(通常作为邻接列表或邻接矩阵)进行操作。
我的问题是,从给定的所有边列表构造邻接列表的有效方法是什么?
出于该问题的目的,假设边是元组列表(如在 python 中),并且 (a,b) 表示从 a 到 b的有向边。
我有一个定义为列表列表的简单堆。我使用了来自heapq模块的heapop来提取具有最小键的列表(据我所知,它隐式是内部列表的第一个元素)。但是在以下情况下,弹出操作似乎给出了异常的结果。
有人可以解释为什么吗?
堆= [[0,0,0],[inf,1,1],[inf,2,2],[5,3,3],[inf,4,4]]
heapq.heappop(堆)
[0,0,0]
heapq.heappop(堆)
[inf,1,1]
heapq.heappop(堆)
[5、3、3]
heapq.heappop(堆)
[inf,2,2]
heapq.heappop(堆)
[inf,4,4]