BZ易风

导航

 

原文引自:https://blog.csdn.net/weixin_30535913/article/details/96012323

LuaStack.lua

local stack = {}  
stack.__index = stack  
  
function stack:new()  
    local temp = {}  
    setmetatable(temp,stack) 
    stack:init() 
    return temp  
end  
  
function stack:init()  
    self.stackList = {}  
end  
  
function stack:reset()  
    self:init()  
end  
  
function stack:clear()  
    self.stackList = {}  
end  
  
function stack:pop()  
    if #self.stackList == 0 then  
        return  
    end   
      
    return table.remove(self.stackList)  
end  

function stack:peek()
    return self.stackList[self:Count()]
end
  
function stack:push(t)  
    table.insert(self.stackList,t)  
end  
  
function stack:Count()  
    return #self.stackList  
end  

return stack

模拟测试

package.path = package.path ..';..\\?.lua'
luaStack = require "luaStack"

--测试代码 
--push 数字
stack1 = luaStack:new()

stack1:push(1)  
stack1:push(2)
stack1:push(3)

while (stack1:Count() > 0)    -- lua中只有nil 和 false 为假
do
    print("stack1 now cotain number:"..stack1:Count())
    print("pop top number:"..stack1:pop())
end

 

posted on 2021-08-17 10:17  BZ易风  阅读(92)  评论(0编辑  收藏  举报