Skip to main content

Crate d_ary_heap

Crate d_ary_heap 

Source
Expand description

§d-ary Heap Priority Queue

Cross-language implementation of d-ary heap (d-heap) priority queue with O(1) item lookup. This implementation provides API parity with C++, Zig, and TypeScript versions.

§Features

  • Configurable arity (d): Number of children per node (d ≥ 1)
  • Min/Max flexibility: Supports both min-heap and max-heap behavior via comparators
  • O(1) item lookup: Internal hash map enables efficient priority updates
  • Efficient operations: O(log_d n) insert, O(d·log_d n) pop
  • Cross-language API: Unified method names and behavior across implementations
  • Comparison-count instrumentation (v2.6.0): opt-in per-operation counters via the StatsCollector trait. Default S = NoOpStats is zero-cost (monomorphisation + ZST layout); see PriorityQueue::with_stats and InstrumentedPriorityQueue.

§Cross-Language Consistency

This Rust implementation maintains API compatibility with:

  • C++: TOOLS::PriorityQueue<T> in Cpp/PriorityQueue.h
  • Zig: DHeap(T) in zig/src/d_heap.zig
  • TypeScript: PriorityQueue<T> in TypeScript/src/PriorityQueue.ts

All implementations share identical time complexities and method semantics.

Re-exports§

pub use instrumentation::ComparisonStats;
pub use instrumentation::NoOpStats;
pub use instrumentation::OperationType;
pub use instrumentation::StatsCollector;

Modules§

instrumentation
Comparison-count instrumentation for the priority queue (v2.6.0 Phase 2).

Structs§

MaxBy
Convenience comparator for max-heap behavior.
MinBy
Convenience comparator for min-heap behavior.
PriorityQueue
d-ary heap priority queue with O(1) item lookup.

Enums§

Error
Error types for d-ary heap operations.

Traits§

PriorityCompare
Trait defining priority comparison for heap ordering.

Type Aliases§

InstrumentedPriorityQueue
Convenience alias for a heap parameterised over ComparisonStats. Use this when you want comparison-count instrumentation; the default PriorityQueue<T, C> stays zero-overhead via NoOpStats.
Position
Type alias for position indices, providing cross-language consistency.