树/图,如何表示多个父节点和子节点?

3

我希望您能帮我解决关于图形/树的一些技术问题。

我试图显示系统中对象的创建情况。 这实际上是一种树形结构。


这里有一些有趣的要求。

a) 一个节点可以有很多子节点,比如20个或更多。 即一个库可被多个对象使用。

b) 一个子节点可以有很多父节点,比如多达20个。 即许多库被一个过程或对象使用。

c) 一个特定的节点可以出现在多个位置。 即一个通用的打印或日志函数在许多过程中被调用。

注意:这只是一个技术上的示例,我相信您会理解。 这不是我需要建模的问题。不需要讨论它。


当我思考它时,我意识到它不是一个简单的二叉树或链表。

1) 我应该使用什么样的数据结构来保存所有的数据?

2) 如何在Java中生成这样的图形?

3) 有哪些自由开源的绘制此类树状图的软件呢? 例如Neo4j

也许以以下格式: - 作为一棵树,有根、干、枝和叶子? - 像现在看到的社交网络图一样,以根节点为中心?

4) 有关这个主题的好网站或教程吗?

非常感谢!

3个回答

0

看看prefuse。虽然它有点旧,但仍能发挥作用。不过你需要花点时间学习如何使用它。一旦掌握了,就只需创建一个prefuse.data.Graph对象并填入您的节点及其相邻节点,然后创建可视化效果。

如果你愿意尝试其他解决方案,可以试试d3.js——在浏览器中使用JavaScript绘制SVG元素的图形。


0
如果这真的是关于对象的话,也许UML可以提供帮助。它的设计初衷是生成对象关系图。市面上有很多免费的UML工具可供选择。我建议你下载一个试试,看看能否将你的应用程序整合进去。

0

JGraphT 可以表示您的图结构,并使用 JGraph 进行可视化。

要查看示例可视化,请参见 this


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接