man queue () - Abstract Data Type for FIFO Queues
NAME
queue - Abstract Data Type for FIFO Queues
DESCRIPTION
This module implements FIFO queues in an efficient manner.
All operations has an amortised O(1) running time, except len/1, reverse/1, join/2 and split/2 that probably are O(n).
EXPORTS
cons(Item, Q1) -> Q2
- Types
- Item = term()
Q1 = Q2 = queue()
Inserts Item at the head of queue Q1. Returns the new queue Q2.
daeh(Q) -> Item
The same as last(Q) and the opposite of head(Q).
from_list(L) -> queue()
- Types
- L = list()
Returns a queue containing the items in L, in the same order - the head item of the list will be the head item of the queue.
head(Q) -> Item
- Types
- Item = term()
Q = queue()
Returns Item from the head of queue Q.
Fails with reason empty if Q is empty.
in(Item, Q1) -> Q2
- Types
- Item = term()
Q1 = Q2 = queue()
Inserts Item at the tail of queue Q1. Returns a new queue Q2. This is the same as snoc(Q1, Item).
in_r(Item, Q1) -> Q2
- Types
- Item = term()
Q1 = Q2 = queue()
Inserts Item at the head of queue Q1. Returns a new queue Q2. This is the same as cons(Item, Q1).
init(Q1) -> Q2
- Types
- Item = term()
Q1 = Q2 = queue()
Returns a queue Q2 that is the result of removing the last item from Q1. This is the opposite of tail(Q1).
Fails with reason empty if Q1 is empty.
is_empty(Q) -> true | false
- Types
- Q = queue()
Tests if Q is empty and returns true if so and false otherwise.
join(Q1, Q2) -> Q3
- Types
- Q1 = Q2 = Q3 = queue()
Returns a queue Q3 that is the result of joining Q1 and Q2 with Q1 before (at the head) Q2.
lait(Q1) -> Q2
The same as init(Q1) and the opposite of tail(Q1).
last(Q) -> Item
- Types
- Item = term()
Q = queue()
Returns the last item of queue Q. This is the opposite of head(Q).
Fails with reason empty if Q is empty.
len(Q) -> N
- Types
- Q = queue()
N = integer()
Calculates and returns the length of queue Q.
new() -> Q
- Types
- Q = queue()
Returns an empty queue.
out(Q1) -> Result
- Types
- Result = {{value, Item}, Q2} | {empty, Q1}
Q1 = Q2 = queue()
Removes the head item from the queue Q1. Returns the tuple {{value, Item}, Q2}, where Item is the item removed and Q2 is the new queue. If Q1 is empty, the tuple {empty, Q1} is returned.
out_r(Q1) -> Result
- Types
- Result = {{value, Item}, Q2} | {empty, Q1}
Q1 = Q2 = queue()
Removes the last item from the queue Q1. Returns the tuple {{value, Item}, Q2}, where Item is the item removed and Q2 is the new queue. If Q1 is empty, the tuple {empty, Q1} is returned.
reverse(Q1) -> Q2
- Types
- Q1 = Q2 = queue()
Returns a queue Q2 that contains the items of Q1 in the reverse order.
snoc(Q1, Item) -> Q2
- Types
- Item = term()
Q1 = Q2 = queue()
Inserts Item as the last item of queue Q1. Returns the new queue Q2. This is the opposite of cons(Item, Q1).
split(N, Q1) -> {Q2,Q3}
- Types
- N = integer()
Q1 = Q2 = Q3 = queue()
Splits Q1 into a queue Q2 of length N with items from the head end, and a queue Q3 with the rest of the items.
tail(Q1) -> Q2
- Types
- Item = term()
Q1 = Q2 = queue()
Returns a queue Q2 that is the result of removing the head item from Q1.
Fails with reason empty if Q1 is empty.
to_list(Q) -> list()
- Types
- Q = queue()
Returns a list of the items in the queue, with the head item of the queue as the head of the list.
AUTHORS
Claes Wikström - support@erlang.ericsson.se Raimo Niskanen - support@erlang.ericsson.se