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
  • 相关阅读:
    SpringBoot和SpringCould的关系
    MyBatis全局配置文件头
    MyBatis的SQL映射文件头
    MyBatis 驼峰式配置 yml配置
    频率组件
    序列化和反序列化
    生成器面试题
    序列化组件
    进程间通信IPC机制
    信号量、event事件和线程queue
  • 原文地址:https://www.cnblogs.com/yifengs/p/15151132.html
Copyright © 2011-2022 走看看