graph - 用于在 C 中表示具有非连续整数节点的节点的图的有效数据结构
问题描述
我需要编写一个程序来进行图形着色,图形将以边列表的形式给出,例如 [(1,57),(57,45),(45,1)] (请注意,即使该图有 3 个节点,它们的名称不一定是 1、2 和 3)。
我的第一个想法是使用邻接列表,但问题是在构建图形时,由于顶点不是 0 到 N,我不能只将连接到节点 n 的节点列表放在第 n 个位置数组。也许我可以使用一个将每个节点编号与其邻居列表相关联的列表,但是我将无法在恒定时间内访问给定节点的相邻节点列表。
所以我该怎么做?我最好的选择是使用哈希表将节点与其邻居列表相关联吗?或者我应该使用 BST 以便我可以找到与 O(log V) 中的节点对应的邻居列表?欢迎任何想法...
解决方案
推荐阅读
- javascript - 如何在 CSS 中向下移动剪贴蒙版?
- android - 将实时数据库 DatabaseReference.addListenerForSingleValueEvent 转换为云 Firestore
- firebase - Firebase 规则以设置特定属性的读/写
- mongodb - 在基于 Mongo 的 API 中搜索多个 ObjectId 的 HTTP 请求?
- php - 从服务器发送命令到 swift 应用程序
- reactjs - 从 dangerouslySetInnerHTML 延迟加载图像
- java - 如何使用 Jena 获取资源的 EXPLICIT listProperties(非推断属性)
- c - 测量执行函数所花费的时间
- python - 我在哪里可以找到 Azure 中的“storage_account_name”、“storage_account_key”、“storage_container_name”?
- r - R数据集中的TextInput过滤器闪亮