diff options
Diffstat (limited to 'lib/Queue.ck')
-rw-r--r-- | lib/Queue.ck | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/lib/Queue.ck b/lib/Queue.ck deleted file mode 100644 index 586330c..0000000 --- a/lib/Queue.ck +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Queue data structure - */ -public class Queue { - Element head @=> Element @tail; - - fun void - push(Object @data) - { - new Element @=> tail.next @=> tail; - data @=> tail.payload; - } - - fun Object @ - peek() - { - if (head.next == null) - /* empty */ - return null; - else - return head.next.payload; - } - - fun Object @ - pop() - { - head.next @=> Element @el; - if (el == null) - /* empty */ - return null; - - el.next @=> head.next; - if (el == tail) - /* but now it's empty! */ - head @=> tail; - return el.payload; - } - - fun void - flush() - { - while (pop() != null); - } -} |