73 lines
999 B
Plaintext
73 lines
999 B
Plaintext
DEFINE MAXSIZE="200"
|
|
BYTE ARRAY queue(MAXSIZE)
|
|
BYTE queueFront=[0],queueRear=[0]
|
|
|
|
BYTE FUNC IsEmpty()
|
|
IF queueFront=queueRear THEN
|
|
RETURN (1)
|
|
FI
|
|
RETURN (0)
|
|
|
|
PROC Push(BYTE v)
|
|
BYTE rear
|
|
|
|
rear=queueRear+1
|
|
IF rear=MAXSIZE THEN
|
|
rear=0
|
|
FI
|
|
IF rear=queueFront THEN
|
|
PrintE("Error: queue is full!")
|
|
Break()
|
|
FI
|
|
queue(queueRear)=v
|
|
queueRear=rear
|
|
RETURN
|
|
|
|
BYTE FUNC Pop()
|
|
BYTE v
|
|
|
|
IF IsEmpty() THEN
|
|
PrintE("Error: queue is empty!")
|
|
Break()
|
|
FI
|
|
v=queue(queueFront)
|
|
queueFront==+1
|
|
IF queueFront=MAXSIZE THEN
|
|
queueFront=0
|
|
FI
|
|
RETURN (v)
|
|
|
|
PROC TestIsEmpty()
|
|
IF IsEmpty() THEN
|
|
PrintE("Queue is empty")
|
|
ELSE
|
|
PrintE("Queue is not empty")
|
|
FI
|
|
RETURN
|
|
|
|
PROC TestPush(BYTE v)
|
|
PrintF("Push: %B%E",v)
|
|
Push(v)
|
|
RETURN
|
|
|
|
PROC TestPop()
|
|
BYTE v
|
|
|
|
Print("Pop: ")
|
|
v=Pop()
|
|
PrintBE(v)
|
|
RETURN
|
|
|
|
PROC Main()
|
|
TestIsEmpty()
|
|
TestPush(10)
|
|
TestIsEmpty()
|
|
TestPush(31)
|
|
TestPop()
|
|
TestIsEmpty()
|
|
TestPush(5)
|
|
TestPop()
|
|
TestPop()
|
|
TestPop()
|
|
RETURN
|