Добавлен мод blueprint-sandboxes Добавляет метку версии в zzzparanoidal (#72)
31 lines
525 B
Lua
31 lines
525 B
Lua
-- https://www.lua.org/pil/11.4.html
|
|
|
|
local Queue = {}
|
|
|
|
function Queue.New()
|
|
return { first = 0, last = -1 }
|
|
end
|
|
|
|
function Queue.Push(list, value)
|
|
local last = list.last + 1
|
|
list.last = last
|
|
list[last] = value
|
|
end
|
|
|
|
function Queue.Pop(list)
|
|
local first = list.first
|
|
if first > list.last then
|
|
return nil
|
|
end
|
|
local value = list[first]
|
|
list[first] = nil
|
|
list.first = first + 1
|
|
return value
|
|
end
|
|
|
|
function Queue.Size(list)
|
|
return list.last - list.first + 1
|
|
end
|
|
|
|
return Queue
|