我知道这priorityQueue
是完美的,Array
因为它的性质已经到位。
我应该在 OCaml 中的列表上实现 PriorityQueue(堆)吗?
如果我这样做List
,那么我必须删除这个in-place
东西并想办法every time
在每一步中创建一个新列表。所以我想知道是否值得。
其实,我对此有更深的思考。
因此,许多fundamental
算法/数据结构是从发明的in-place
(我使用invented
是因为我知道许多就地可以转换为not-in-place
)。
不过,FL
不推荐mutable
的东西。我的另一个问题是如何在 和 之间进行in-place / mutable
选择immutable
?或者在 OCaml 中,我什么时候应该在 和 之间进行list
选择array
?
例如,在上述priorityqueue
情况下,如果我被要求priorityqueue
在 OCaml 中编写 a,我应该更喜欢array
它更自然、更容易,还是应该选择 list 以保持不变?