Brodal队列的伪代码


12

我正在尝试查找有关Brodal堆的更多资源。我发现的只是Brodal-Okasaki堆haskell实现,但是我认为它们是倾斜堆,这是正确的吗?此外,我在Haskell是文盲,所以没有太大帮助。有没有人(或知道)用伪代码,C,C ++,Python实现的Brodal队列实现?

如果上述假设是错误的,也请纠正。


3
您是要具体实现Brodal队列,还是要有效地实现优先级队列?布罗德(Brodal)在论文的结论中提到,如果不对该领域进行进一步研究,它们是不实际的。他的论文被广泛引用,也许有用吗?《 CLR算法简介》中有关于优先级队列的部分,但是它引用了有关优先级队列的更早的工作。
杰伊·埃尔斯顿,

2
原始Brodal队列使用破坏性分配,因此Haskell版本必须进行一些修改。
弗雷德·富

Answers:


2

Haskell实现基于功能性Brodal-Okasaki堆,您是对的,它是偏斜堆的变体。该论文写得非常清楚,因此将是很好的资源。

关于实施,有也是在斯卡拉作为实施的一部分的scalaz库。


1

这是部分答案,因为我还没有弄清楚如何将代码转换成非Haskell的东西。据我所知,必须使用Haskell的原因是Haskell很懒。Brodal-Okasaki堆需要从纸上以一种懒惰的方式实现。因此,您需要的是一种将功能提供给另一种语言以及BO Heap可能需要的任何其他要求(例如纯功能数据结构)的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.