哈希表中图形的表示

Posted

技术标签:

【中文标题】哈希表中图形的表示【英文标题】:Representation of graphs in a hash table 【发布时间】:2021-09-22 06:28:35 【问题描述】:

我目前正在撰写关于图中聚类的硕士论文。我的教授说他希望将图表表示为哈希表。因为它比邻接矩阵需要更少的空间,并且在检查两个顶点之间是否存在边时比邻接列表更快。 无论如何,我在理解如何用(完美的)散列函数构建图形时遇到了很多问题。我知道里面应该有两张桌子。第一个包含每个节点,第二个包含所有相邻的顶点。但是我如何找到一个正确的哈希函数呢? 构建图表后,我必须为每条边分配权重。建一个新图好还是保留旧图好?如何正确地将权重分配给每个边缘以及如何保存它? 最后一个问题:我可以多快对一个顶点进行度数查询? O(1)?

很抱歉所有这些问题,但我阅读了很多论文,但我仍然感到困惑。 提前感谢您的任何帮助!!!

丽莎

【问题讨论】:

【参考方案1】:

你必须问你的教授,但我认为这很简单。

例如假设您有一个三角形 A、B、C,然后在哈希中您只需将其表示为

A B,C
B A,C
C A,B

所以链接 A,B 的入口可能来自 A 和 B。

【讨论】:

以上是关于哈希表中图形的表示的主要内容,如果未能解决你的问题,请参考以下文章

141. 环形链表简单哈希双指针

iOS中的哈希表

环形链表(哈希表链表)寻找两个正序数组的中位数(数组二分查找)二进制求和(位运算数学)

php扩展开发-哈希表

将键/值对添加到哈希表(嵌套在数组中,嵌套在哈希表中)

哈希表中的查找