zoukankan      html  css  js  c++  java
  • Lua模拟stack

    原文引自: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
  • 相关阅读:
    3.22
    练习 3.16
    简单工厂模式
    Java-不可变字符串
    java中的缓冲流
    TCP协议下java通信
    nginx优化
    nginx反向代理
    shell-for循环
    shell-数组
  • 原文地址:https://www.cnblogs.com/yifengs/p/15151132.html
Copyright © 2011-2022 走看看