【发布时间】:2013-12-05 02:39:49
【问题描述】:
我正在处理一个非常复杂的工作流程,我想将其表示为 JavaScript 数据结构。流程本质上是一组问题和答案,其中一个问题的答案会影响下一个问题。以下是流程的基本示例:
我不确定如何将此流转换为易于使用的 JavaScript 对象。理想情况下,我希望有一个易于循环/递归且易于修改的结构,这样如果有人想在以后更改流程,他们可以这样做而无需进行太多更改。
我觉得这是一种奇怪的树结构,其中节点可以有多个父节点。 (我不确定这样的数据结构叫什么。)
无论如何,我唯一的想法是为每个节点分配一个 ID,然后创建一个节点对象数组,如下所示:
{
id: 5,
parents: [2, 3],
children: [6, 7, 8]
}
但是,在遍历节点对象时,这似乎非常不灵活(不过我可能是错的)。
如果有人能提供一些关于我应该研究什么样的数据结构以及可能如何在 JavaScript 中实现它们的说明/指导,我将不胜感激。
非常感谢您。
【问题讨论】:
-
这看起来像一个有向图或有向图。
-
谢谢你,ithcy。我会调查这两个并报告。
-
对不起 - digraph 是有向图的另一个名称。
标签: javascript data-structures recursion nodes tree-nodes