Skip to content

cstffx/csheap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

csheap

Min and max heap implementation over a vector. This is a efficient implementation of the ADT priority queue.

// Create a new heap instance for u32 elements.   
let mut heap = Heap::<u32>::new(HeapType::Max);

// Create a new heap instance from an u32 vector.
// Will take the ownership of the vector.
let mut heap = Heap::<u32>::from_vec(HeapType::Min, some_vector);

// To avoid taking the ownership of the vector you can, 
// for example, clone the vector.
let mut heap = Heap::<u32>::from_vec(HeapType::Min, some_vector.clone());

There are two basic operations:

  • insert: Insert an element.
  • extract: Remove and return the element in the root node.

Heaps comes in two flavors: Min and Max.

  • Min: extract always take the min element.
  • Max: extract always take the max element.
// Create a heap that always return the maximal element
let mut heap = Heap::<u32>::new(HeapType::Max);

heap.insert(1u32); 
heap.insert(2u32);

heap.extract();     // returns 2

About

A heap implementation over a vector

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages