首页 > 解决方案 > 用于在 C 中表示具有非连续整数节点的节点的图的有效数据结构

问题描述

我需要编写一个程序来进行图形着色,图形将以边列表的形式给出,例如 [(1,57),(57,45),(45,1)] (请注意,即使该图有 3 个节点,它们的名称不一定是 1、2 和 3)。

我的第一个想法是使用邻接列表,但问题是在构建图形时,由于顶点不是 0 到 N,我不能只将连接到节点 n 的节点列表放在第 n 个位置数组。也许我可以使用一个将每个节点编号与其邻居列表相关联的列表,但是我将无法在恒定时间内访问给定节点的相邻节点列表。

所以我该怎么做?我最好的选择是使用哈希表将节点与其邻居列表相关联吗?或者我应该使用 BST 以便我可以找到与 O(log V) 中的节点对应的邻居列表?欢迎任何想法...

标签: graphtreehashtablediscrete-mathematicsgraph-coloring

解决方案


推荐阅读