mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 19:45:22 +09:00
Move files to exp_legacy
This commit is contained in:
34
exp_legacy/module/utils/queue.lua
Normal file
34
exp_legacy/module/utils/queue.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
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
|
||||
|
||||
if element then
|
||||
queue._tail = index - 1
|
||||
end
|
||||
return element
|
||||
end
|
||||
|
||||
return Queue
|
||||
Reference in New Issue
Block a user