我正在尝试在Javascript中逐步建模(想想任何宜家指南)在哪里 1.每个步骤可以链接到一个或多个后续步骤, 2.一个步骤可以对前面的步骤有0或n个依赖关系 3.总有最后一步。像这样:
o
/ \
o -> o o -> o
\ /
o -> o
首先想到的是有向图结构,但由于该图具有使所有节点指向"前进"的唯一性。我想知道是否有更好的方法。感觉它应该是某种树和图形的混合。
最终,我想使用此结构来优化建议的执行计划。我不会过于担心插入,删除,更新或查询的优化,因为这些指南总是少于100步。我只是在寻找一种能够使编码变得更容易的数据结构。
我将在此结构中查询的内容:
答案 0 :(得分:1)
有向图应该是最简单的方法。在阅读本文的其余部分之前,请记住我没有谈论对数据结构进行并列化,因为我不知道如何去做。无论如何,您不会处理大量数据,因此您不会遇到任何效率问题。
我们将为每个步骤存储两个数组:一个用于后续步骤,另一个用于依赖项。将支持以下操作:
请注意,某些操作可以使用BST或哈希表加速,但由于您要处理小数据,我试图尽可能简单。