我试图在Javascript中建立一步一步的指南(想想任何IKEA指南),其中每一步都可以链接到一个或多个后续步骤,2.一个步骤可以对前面的步骤有0或n个依赖项,3.始终有最后一个步骤。就像这样:
o
/ \
o -> o o -> o
\ /
o -> o
首先想到的是有向图的结构,但是由于这个图的唯一性,所有节点都指向“前进”,所以我想知道是否有更好的方法。感觉应该是一棵树和一幅图的混合。
最后,我想使用这个结构来优化建议的执行计划。我不会太担心对插入、删除、更新或查询进行优化,因为这些指南的步骤总是少于100个。我只是在寻找一种数据结构,使编码“更容易”。
在这个结构中我要查询的内容:
发布于 2016-09-25 23:03:17
有向图应该是最简单的方法。在阅读剩下的课文之前,请记住,我并没有谈论数据结构的并行化,因为我不知道如何做到这一点。无论如何,您将不会处理大量的数据,所以您将不会有任何效率问题。
我们将为每个步骤存储两个数组:一个用于下一个步骤,另一个用于依赖项。将支持下列行动:
注意,有些操作可以使用BST或哈希表加速,但是由于要处理小数据,所以我尽量保持它的简单性。
https://stackoverflow.com/questions/39695468
复制