Skip to main content

Crate fibonacci_heap

Crate fibonacci_heap 

Source
Expand description

A high-performance Fibonacci Heap implementation in Rust with generic type support.

Fibonacci Heap is a collection of trees that satisfies the minimum heap property. It provides efficient operations for insertion, merging, and decreasing keys, making it ideal for algorithms like Dijkstra’s and Prim’s.

§Features

  • O(1) amortized time for insert and merge operations
  • O(1) amortized time for decrease key operations
  • O(log n) amortized time for extract minimum operations
  • Support for multiple data types (i32, f64, char, etc.)
  • Comprehensive error handling
  • Node validity tracking via valid flag

§Example

use fibonacci_heap::{GenericFibonacciHeap, FibonacciHeapI32};

// Using generic heap
let mut heap: GenericFibonacciHeap<i32> = GenericFibonacciHeap::new();
let node1 = heap.insert(10).unwrap();
let node2 = heap.insert(5).unwrap();
assert_eq!(heap.extract_min(), Some(5));

heap.decrease_key(&node1, 3).unwrap();
assert_eq!(heap.extract_min(), Some(3));

// Using type alias for i32
let mut heap_i32 = FibonacciHeapI32::new();
heap_i32.insert(42).unwrap();

Structs§

GenericFibonacciHeap
A Fibonacci Heap data structure with generic type support
IntoIter
Consuming iterator that yields keys in ascending order.
Node
A node in the Fibonacci Heap.

Enums§

HeapError
Error types for Fibonacci Heap operations

Traits§

HeapKey
Trait for types that can be used as keys in Fibonacci Heap
NodeRef
Trait for node reference abstraction.

Type Aliases§

FibonacciHeap
Type aliases for backward compatibility and convenience
FibonacciHeapChar
FibonacciHeapF32
FibonacciHeapF64
FibonacciHeapI8
FibonacciHeapI16
FibonacciHeapI32
FibonacciHeapI64
FibonacciHeapI128
FibonacciHeapISize
FibonacciHeapU8
FibonacciHeapU16
FibonacciHeapU32
FibonacciHeapU64
FibonacciHeapU128
FibonacciHeapUSize
HeapResult
Result type for heap operations