aboutsummaryrefslogtreecommitdiff
path: root/queue.ads
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-12-07 17:27:41 +0100
committerCharles <sircharlesaze@gmail.com>2019-12-07 17:27:41 +0100
commite0dd50831fd19e1145897de8af909002c2821376 (patch)
treed3d4dd827b4d55f243b3664ac878e944146f720b /queue.ads
parentacfbdcefdbc60e97a9e3447afed204b3e40d991e (diff)
downloadsnake-e0dd50831fd19e1145897de8af909002c2821376.tar.gz
snake-e0dd50831fd19e1145897de8af909002c2821376.tar.bz2
snake-e0dd50831fd19e1145897de8af909002c2821376.zip
Basic Queue package
Diffstat (limited to 'queue.ads')
-rw-r--r--queue.ads28
1 files changed, 16 insertions, 12 deletions
diff --git a/queue.ads b/queue.ads
index e0da54c..d573490 100644
--- a/queue.ads
+++ b/queue.ads
@@ -1,21 +1,25 @@
generic
- type T_Data is limited private;
+ type T_Data is private;
package Queue is
- type T_Queue is record
- front: T_List;
- back: T_List;
- end record;
-
- type T_List_Cell;
- type T_List is access T_List_Cell;
- type T_List_Cell is record
+ type T_List_Node;
+ type T_List is access all T_List_Node;
+ type T_List_Node is record
data: T_Data;
next: T_List;
end record;
- procedure Enqueue(queue: T_Queue;
- data: T_Data);
- procedure Dequeue(queue: T_Queue);
+ type T_Queue is record
+ front: T_List := null;
+ back: T_List := null;
+ end record;
+
+ procedure Enqueue(queue: in out T_Queue; data: T_Data);
+ procedure Dequeue(queue: in out T_Queue);
+ function Length(queue: T_Queue) return Natural;
+
+private
+
+ function Empty(queue: T_Queue) return Boolean;
end Queue;