我知道这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 以保持不变?