Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
18
Task/Queue-Definition/Maxima/queue-definition.maxima
Normal file
18
Task/Queue-Definition/Maxima/queue-definition.maxima
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
defstruct(queue(in=[], out=[]))$
|
||||
|
||||
enqueue(x, q) := (q@in: cons(x, q@in), done)$
|
||||
|
||||
dequeue(q) := (if not emptyp(q@out) then first([first(q@out), q@out: rest(q@out)])
|
||||
elseif emptyp(q@in) then 'fail
|
||||
else (q@out: reverse(q@in), q@in: [], first([first(q@out), q@out: rest(q@out)])))$
|
||||
|
||||
q:new(queue); /* queue([], []) */
|
||||
enqueue(1, q)$
|
||||
enqueue(2, q)$
|
||||
enqueue(3, q)$
|
||||
dequeue(q); /* 1 */
|
||||
enqueue(4, q)$
|
||||
dequeue(q); /* 2 */
|
||||
dequeue(q); /* 3 */
|
||||
dequeue(q); /* 4 */
|
||||
dequeue(q); /* fail */
|
||||
Loading…
Add table
Add a link
Reference in a new issue