Generic Queue Implementation
92,877 Views
-
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 := InitialElementsqueue<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
You're reading a preview
The full reference is free for BrainDeadGuild Discord members — sign in to read it all, or open the original at the source.
Sign in with your BrainDead.TV / BrainDeadGuild Discord account for full access.