适用于大型图形的数据结构

时间:2012-05-29 12:57:33

标签: c++ c visual-c++ dijkstra

我有一个大图,除了邻接列表和c ++ stl中的“邻接矩阵”之外还有其他任何数据结构,或者我可以用于这样一个大图的其他数据结构,实际上我的图的邻接矩阵确实如此不适合主存。我的图是有针对性的,我正在用C ++实现dijkstra算法。

我已经看过以前的帖子......但是我正在寻找一个关于dijkstra的合适数据结构。

我认为是一个包含超过1亿个节点和边缘的图表。

1 个答案:

答案 0 :(得分:2)

将邻接列表表示为整数列表是常见的,其中整数是节点的索引。如何通过将邻接列表视为位字符串00010111000...来获得更多空间效率,其中第n个位置的1表示此节点与节点n之间的边缘?然后用一些标准算法压缩bitstring;根据需要解压缩它。位串可能会很好地压缩,因此这会提高空间效率,从而获得更高的计算成本。