39 lines
702 B
Plaintext
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()
|