lua实现的队列

来源:互联网 发布:excel 示例数据 编辑:程序博客网 时间:2024/05/20 08:23
require("lib/base.lua")luaQueue = {}--class("luaQueue", base)print = logfunction luaQueue:new()o = o or {}setmetatable(o, luaQueue)self.__index = luaQueuelocal lst = {pre = nil, next = nil, value = nil}self.first = nilself.last = nilself.size = 0return oend--空返回 true function luaQueue:isEmpty()if self.size == 0 and self.first == nil and self.last == nil thenreturn trueendreturn falseendfunction luaQueue:pushFirst(data)local lst = {}lst.pre = nillst.value = datalst.next = nilif self.first == nil thenself.first = lstself.last = lstelselst.next = self.firstself.first.pre = lstself.first = lstendself.size = self.size + 1endfunction luaQueue:popLast()if self:isEmpty() thenprint("list is isEmpty")returnendlocal popData = self.lastlocal temp = popData.preif temp thentemp.next = nilself.last = tempelseself.last = nilself.first = nilendself.size = self.size - 1return popDataendfunction luaQueue:getQueueData(data)return data.valueendfunction luaQueue:printEveryOne()local temp = self.firstif not temp thenprint("lua Queue is empty")returnendwhile temp doprint(temp.value)temp = temp.nextendend

0 0
原创粉丝点击