数据结构-图形实现提前知道边缘



我正在寻找一种有效的方法来实现一个加权无向图,只知道提前的边数。

样本输入:
N(边数)
A B x (x为A到B的距离)


我想使用邻接表的节点*(我需要知道邻居)和存储节点在一个动态哈希表(我不知道有多少节点,我将采取,所以我需要一个动态搜索/插入容器)。

有更好的方法吗?

对不起,我的英语不好!: D

给定输入的格式,一种非常合理的方法是使用列表的哈希表,其中键是节点,值是(node, distance)对的列表。或者,如果您有一个密集的图,并且希望能够快速确定从一个节点到另一个节点的距离,那么最好有一个哈希表的哈希表,其中顶级哈希表将节点映射到第二个哈希表,然后将原始节点有边的每个节点映射到它的成本。这仍然可以让你遍历节点的外向边,但可以让你更快地查找距离。

另一个想法(取决于用例)是首先构建第一个数据结构(列表的哈希表),然后通过构建邻接矩阵对其进行后期处理。如果您不需要遍历节点的出线边,并且需要快速随机访问节点之间的距离,那么这将非常有用。它类似于哈希表的哈希表,但可能更节省空间。

希望这对你有帮助!

最新更新