stella v0.4.0 PriorityQueue
Documentation for PriorityQueue
data structure implemented on general balanced trees by Arne Andersson
These have no storage overhead compared to unbalanced binary trees, and
their performance is better than AVL trees.
More about GB trees on Arne Andersson work
Link to this section Summary
Functions
Add a new element with priority to queue
Checkout if queue is empty
Create a new, empty qeue
Return peek element of queue
Return number of elements in queue
Checkout if queue is empty
Remove element from queue with the higest priority
Link to this section Functions
Link to this function
insert(queue, element, priority)
Add a new element with priority to queue
Examples
iex> PriorityQueue.new |> PriorityQueue.insert("Do homework", 4)
{1, {4, "Do homework", nil, nil}}
Link to this function
is_empty(queue)
Checkout if queue is empty
Examples
iex> PriorityQueue.new |> PriorityQueue.insert("Do homework", 4) |> PriorityQueue.is_empty
false
iex> PriorityQueue.new |> PriorityQueue.is_empty
true
Link to this function
new()
Create a new, empty qeue
Examples
iex> PriorityQueue.new
{0, nil}
Link to this function
peek(queue)
Return peek element of queue
Examples
iex> PriorityQueue.new |> PriorityQueue.insert("Do homework", 4) |> PriorityQueue.peek
"Do homework"
Link to this function
size(queue)
Return number of elements in queue
Examples
iex> PriorityQueue.new |> PriorityQueue.insert("Do homework", 4) |> PriorityQueue.size
1
Link to this function
to_list(queue)
Checkout if queue is empty
Examples
iex> PriorityQueue.new
iex> |> PriorityQueue.insert("Do4", 4)
iex> |> PriorityQueue.insert("Do1", 1)
iex> |> PriorityQueue.to_list
[{1, "Do1"}, {4, "Do4"}]
Link to this function
top(queue)
Remove element from queue with the higest priority
Examples
iex> PriorityQueue.new |> PriorityQueue.insert("Do homework", 4) |> PriorityQueue.top
{0, nil}