置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:Queue

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

队列是一种先进先出(FIFO)的线性表。

方法

push:向队列尾部插入元素。

pop:弹出第一个元素。

front:访问第一个元素。

empty:检查容器是否为空。

例子

local queue = require("Module:queue")
local myQueue = queue
myQueue:push(1)             -- 数字1入队列
myQueue:push(2)             -- 数字2入队列
mw.log(myQueue:front())     -- 输出队列中第一个元素(此时为数字1)
myQueue:pop()               -- 将第一个元素(此时为数字1)弹出队列
mw.log(myQueue:front())     -- 输出队列中第一个元素(此时为数字2)
myQueue:pop()               -- 将第一个元素(此时为数字2)弹出队列
mw.log(myQueue:empty())     -- 输出此时队列是否为空
myQueue:push(3)             -- 数字3入队列
mw.log(myQueue:empty())     -- 输出此时队列是否为空
mw.log(myQueue:front())     -- 输出队列中第一个元素(此时为数字3)
myQueue:pop()               -- 将第一个元素(此时为数字3)弹出队列

预期输出:

1
2
true
false
3
local queue = { data={} }

function queue.push(self, item)
    return table.insert(self.data, item)
end

function queue.front(self)
    return self.data[1]
end

function queue.pop(self)
    return table.remove(self.data, 1)
end

function queue.empty(self)
    return _G.next(self.data) == nil 
end

return queue