Generic Queue Implementation
Module — 2 files
These files compile together (same module folder).
file_1.verse
queue<public>(t:type) := class:
Elements<internal>:[]t = array{}
Enqueue<public>(NewElement:t):queue(t)=
queue(t){Elements := Elements + array{NewElement}}
Dequeue<public>()<decides><transacts>:tuple(queue(t),t)=
FirstElement := Front[]
(queue(t){Elements := Elements.RemoveElement[0]}, FirstElement)
Size<public>()<transacts>:int=
Elements.Length
IsEmpty<public>()<decides><transacts>:void=
Size() = 0
Front<public>()<decides><transacts>:t=
Elements[0]
Rear<public>()<decides><transacts>:t=
Elements[Elements.Length - 1]
CreateQueue<public><constructor>(InitialElements:[]t where t:type) := queue(t):
Elements := InitialElements
Sign in to download module
Copy-paste each file above is always free.