【发布时间】:2017-12-15 07:13:38
【问题描述】:
我目前在 Java 中有一个仅附加的树数据结构。这棵树的主要目的是维护一个指向最长分支的指针。 我通过引用最长分支中的最后一个节点来实现这一点,该最长分支在树中插入新节点时会更新。
出于性能和持久性的原因,我想使用 Neo4j Java API 将此实现迁移到 Neo4j。在阅读文档时,我找不到一个方便的解决方案来查询 Neo4j 数据库中最长的分支。在我的实现中,我可以确保该图是一个 n 叉树。
在 Neo4j 中找到这种树中最长的分支的首选解决方案是什么?
- 像我在 Java 实现中那样保持指向最后一个节点的指针?
- 塑造一个算法以找到最长的路径并使用遍历 API 或通过密码查询来实现?
- 我还没有找到 Neo4j 中的一些内置功能?
【问题讨论】:
-
有一篇关于这个主题的优秀博客文章和各种 Github 项目。检查github.com/maxdemarzi/neo_roots。 Max 探索了所有选项(从 Cypher 到遍历,再到非托管扩展),因此您可以选择适合您的选项(并且在性能方面可以接受)。
标签: algorithm neo4j tree neo4j-java-api