我有一个表示有向图的数据结构,我想在HTML页面上动态呈现它.这些图通常只是几个节点,可能只有十个节点,所以我的猜测是性能不会是一个大问题.理想情况下,我希望能够使用jQuery将其挂钩,以便用户可以通过拖动节点来手动调整布局.
注意:我不是在寻找图表库.
我正在处理一个非常复杂的工作流程,我希望将其表示为JavaScript数据结构.流程本质上是一组问题和答案,其中一个问题的答案影响下一个问题.以下是流程可能如下所示的基本示例:

我不确定如何将此流转换为易于使用的JavaScript对象.理想情况下,我希望有一个易于循环/递归的结构,并且可以轻松修改,因此如果有人想在以后更改流程,他们可以这样做,而无需进行太多更改.
我觉得这是一种奇怪的树结构,其中节点可以有多个父节点.(我不确定这样的数据结构是什么.)
无论如何,我唯一的想法是为每个节点分配一个ID,然后创建一个节点对象数组,如下所示:
{
id: 5,
parents: [2, 3],
children: [6, 7, 8]
}
Run Code Online (Sandbox Code Playgroud)
但是,当涉及到循环遍历节点对象时,这似乎是非常不灵活的(尽管我可能是错的).
如果有人可以提供一些关于我应该研究什么样的数据结构以及可能如何在JavaScript中实现它们的指导/指导,我将非常感激.
非常感谢你提前.
所以我使用http://bl.ocks.org/mbostock/4339083来创建一个可折叠的树,而且效果很好。
现在的问题是我有一些节点具有相同的子节点,所以我想知道是否有任何方法可以将图形可视化,使父节点都扩展到同一个子节点?
所以基本上当你扩展一个父节点的节点时,它应该自动扩展另一个父节点的节点,导致同一个公共子节点,这对任何图形都有可能吗?