RosettaCodeData/Task/Queue-Definition/PureBasic/queue-definition.basic

39 lines
702 B
Plaintext

NewList MyStack()
Procedure Push(n)
Shared MyStack()
LastElement(MyStack())
AddElement(MyStack())
MyStack()=n
EndProcedure
Procedure Pop()
Shared MyStack()
Protected n
If FirstElement(MyStack()) ; e.g. Stack not empty
n=MyStack()
DeleteElement(MyStack(),1)
Else
Debug "Pop(), out of range. Error at line "+str(#PB_Compiler_Line)
EndIf
ProcedureReturn n
EndProcedure
Procedure Empty()
Shared MyStack()
If ListSize(MyStack())=0
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
;---- Example of implementation ----
Push(3)
Push(1)
Push(4)
While Not Empty()
Debug Pop()
Wend
;---- Now an extra Pop(), e.g. one to many ----
Debug Pop()