I still don't know how bad the extra internal laziness suggested in #115 might be, but it got me thinking: a strict version of that (i.e., strict in keys and values) would be perfect for implementing a relatively compact bootstrapped MinQueue. And adding a lazy value field in BinomTree yields a half-strict 2-valued queue perfect for implementing a bootstrapped version of MinPQueue. I've written up the basic operations, as well as unordered maps and traversals for the second version. I haven't done any benchmarking yet. Intuitively, I would expect this to be a little slower than our current queues, but likely faster than the bootstrapped skew binomial ones in the heaps package.
So do such queues belong here? There? Their own package?
I still don't know how bad the extra internal laziness suggested in #115 might be, but it got me thinking: a strict version of that (i.e., strict in keys and values) would be perfect for implementing a relatively compact bootstrapped
MinQueue. And adding a lazy value field inBinomTreeyields a half-strict 2-valued queue perfect for implementing a bootstrapped version ofMinPQueue. I've written up the basic operations, as well as unordered maps and traversals for the second version. I haven't done any benchmarking yet. Intuitively, I would expect this to be a little slower than our current queues, but likely faster than the bootstrapped skew binomial ones in theheapspackage.So do such queues belong here? There? Their own package?