adt::Queue
-- abstract data type
``Queue''adt::Queue
implements the abstract data type
``Queue''.
adt::Queue(queue)
queue |
- | an expression sequence of objects to initialize the queue |
an object of the domain adt::Queue
adt::Queue
implements the abstract data type
``Queue''. To create a queue, an expression sequence of any
MuPAD objects can be given to initialize the queue, otherwise an
empty queue is builded.The methods of all abstract datatypes must be called especially and will result changing the object itself as sideeffect.
Q := adt::Queue()
an empty queue is builded and
assigned to the variable Q
.Queue
followed by a
number. This name is generated by genident
.All following methods changes the value of
Q
itself. A new assignment to the variable (in this
example Q
) is not necessary, in contrast to all other
MuPAD functions and data types.
clear
, dequeue
,
empty
, enqueue
, front
,
length
, reverse
are available for handling
with queues.Q::clear()
Q::dequeue()
Q::enqueue(x)
x
at the end of the
queue.Q::front()
Q::length()
Q::reverse()
Create a new queue with strings as arguments.
>> Q := adt::Queue("1", "2", "3", "4")
Queue1
Show the length of the queue.
>> Q::length()
4
Fill up the queue with a new element. The queue will be
changed by the method, no new assignment to Q
is
necessary!
>> Q::enqueue("5")
"5"
Show the front of the queue. This method does not change the queue.
>> Q::front(), Q::front()
"1", "1"
After twice getting an element of the queue, the third
element is the new front of the queue, and the length is
3
.
>> Q::dequeue(), Q::dequeue(), Q::front(), Q::length()
"1", "2", "3", 3
Now revert the queue. The last element will be the first element.
>> Q::reverse(): Q::front()
"5"
Enlarge the queue with "2"
.
>> Q::enqueue("2"): Q::empty()
FALSE
Finally collect all elements of the queue in the list
assigned to ARGS
, until the queue is empty.
>> ARGS := []: while not Q::empty() do ARGS := append(ARGS, Q::dequeue()) end: ARGS
["5", "4", "3", "2"]