mirror of
https://github.com/Refactorio/RedMew.git
synced 2025-03-17 21:08:08 +02:00
added Queue.lua
This commit is contained in:
parent
f713439499
commit
d14f0aae76
33
utils/Queue.lua
Normal file
33
utils/Queue.lua
Normal file
@ -0,0 +1,33 @@
|
||||
local Queue = {}
|
||||
|
||||
function Queue.new()
|
||||
local queue = {_head = 0, _tail = 0}
|
||||
return queue
|
||||
end
|
||||
|
||||
function Queue.size(queue)
|
||||
return queue._tail - queue._head
|
||||
end
|
||||
|
||||
function Queue.push(queue, element)
|
||||
local index = queue._head
|
||||
queue[index] = element
|
||||
queue._head = index - 1
|
||||
end
|
||||
|
||||
function Queue.peek(queue)
|
||||
return queue[queue._tail]
|
||||
end
|
||||
|
||||
function Queue.pop(queue)
|
||||
local index = queue._tail
|
||||
|
||||
local element = queue[index]
|
||||
queue[index] = nil
|
||||
|
||||
queue._tail = index - 1
|
||||
|
||||
return element
|
||||
end
|
||||
|
||||
return Queue
|
Loading…
x
Reference in New Issue
Block a user