diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-12-07 17:27:41 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-12-07 17:27:41 +0100 |
| commit | e0dd50831fd19e1145897de8af909002c2821376 (patch) | |
| tree | d3d4dd827b4d55f243b3664ac878e944146f720b /queue.ads | |
| parent | acfbdcefdbc60e97a9e3447afed204b3e40d991e (diff) | |
| download | snake-e0dd50831fd19e1145897de8af909002c2821376.tar.gz snake-e0dd50831fd19e1145897de8af909002c2821376.tar.bz2 snake-e0dd50831fd19e1145897de8af909002c2821376.zip | |
Basic Queue package
Diffstat (limited to 'queue.ads')
| -rw-r--r-- | queue.ads | 28 |
1 files changed, 16 insertions, 12 deletions
@@ -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; |
