4

我正在编写一个操作某种社交网络数据的应用程序,因此理想的底层数据结构是加权有向图。我想直接对数据进行操作(和搜索),而不是先将整个图形加载到内存中并在之后进行序列化。

这可以使用标准 SQL 数据库或键/值存储来模拟,但这会非常低效(对于我想使用的图遍历算法,例如最短路径等)。

由于谷歌搜索没有找到任何有用的结果,因此我有点想自己写,但我更愿意使用现有的解决方案(如果有的话,我错过了),而不是重新发明轮子。该项目是为了娱乐/个人研究,因此软件必须是开源的(并且最好能够在 Linux 下运行)。

那么,有没有符合上述描述的项目?

谢谢!

4

3 回答 3

5

如果您使用的是 Java,您可以尝试http://neo4j.org/

于 2009-04-05T00:55:51.877 回答
2

ODBMS怎么样?db40 具有 Java 和 .NET 实现,因此两者都在 Linux 上运行。

于 2009-04-04T23:41:47.123 回答
0

您还可以将图形视为节点数组。每个节点存储其兄弟节点的列表。

因此,您可以简单地在图表中为每个节点存储 1 个文件。然后该文件的内容是它连接到的节点列表(自定向以来指向)。

然后你可以根据需要读入一个节点。

这使您可以执行诸如遍历整个树之类的操作,同时一次仅在内存中保留一个节点。

于 2009-04-04T23:19:52.933 回答