summaryrefslogtreecommitdiff
path: root/lib/Queue.ck
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Queue.ck')
-rw-r--r--lib/Queue.ck44
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);
- }
-}