一个简单的lua版本的队列封装,直接上代码
-- 队列
---@class Queue
local Queue = {}
Queue.__index = Queue
function Queue:New()
local baseTable = {
count = 0,
list = {},
}
return setmetatable(baseTable, self)
end
setmetatable(Queue, { __call = Queue.New})
function Queue:deQueue()
if self.count <= 0 then
return nil
end
local curIndex = self.count
local obj = self.list[curIndex]
self.list[curIndex] = nil
self.count = curIndex - 1
return obj
end
function Queue:peek()
if self.count <= 0 then
return nil
end
return self.list[self.count]
end
function Queue:enQueue(obj)
local curIndex = self.count + 1
self.count = curIndex
table.insert(self.list, 1, obj)
end
return Queue
--使用示例
--Queue = require("Queue")
--local queue = Queue.New()
--queue:deQueue()
--queue:peek()
--queue:enQueue()