|
|
1
2
Boost Graph Library 包含一个称为不相交集的数据结构,该数据结构对此处所需的结构(一组相互关联的集)进行建模。 将此数据结构视为林的另一种方式。森林是树木不相交的结合体。 |
|
|
2
0
|
|
|
3
0
对我来说,它看起来更像一棵树(一般的树,而不是二进制的),而不是一个队列。但是,删除节点的语义需要有很好的定义。 顺便说一句,一提到“排班队列”就给我们敲响了警钟 Priority Queue 也 |
|
|
4
0
http://en.wikipedia.org/wiki/Disjoint-set_data_structure 在这里: http://www.boost.org/doc/libs/1_42_0/libs/disjoint_sets/disjoint_sets.html ).
所以现在我倾向于一个简单的想法,一个队列池。一旦需要一个新队列,请从池中选择它,如果没有可用的队列,则创建一个新队列,然后将其添加到树中。如果队列为空,则将其返回到池并删除树节点。池本身将是一个优先级队列,前面分配的缓冲区最大,后面分配的缓冲区最小。一段时间后,将分配很少或没有新内存(假设发生的“弹出”量与“推”量大致相同)
|
|
|
5
0
你说, 它也可以指树状队列,它包括多个N个y,一组状态/数据检查,从顶部(z)执行,但从底部(x)接收状态变化。
对我来说(我的)是类似的问题 What are patterns/types of task queues? Can the multi-level task queue exist in form of a N-tree? )似乎是一个N级结构,它遍历子节点,每个级别有三种状态机可用:,$me->tryCommit(下面是tryadvancechilds(tryAdvanceToNextSiblingStep(getNextSibling()))和要重写的混乱实现。 |