lua队列实现

    Queue = {}

    function Queue.newquene()
        return {count = 0}
    end

    function Queue.push(queue, value)
        queue.count = queue.count+1
        queue[queue.count] = value
    end

    function Queue.pop(queue)
        queue[queue.count] = nil
        queue.count = queue.count-1
    end

    --按入队顺序输出
    function Queue.print( queue )
        local i=1
        while queue[i] do
            print(queue[i])
            i = i+1
        end
    end

    --按出对顺序输出
    function Queue.printReverse( queue )
        local i=queue.count
        while queue[i] do
            print(queue[i])
            i = i-1
        end
    end

    local que = Queue.newquene()

    for i=1, 9 do
        Queue.push(que, i)
    end

    Queue.print(que)
    Queue.pop(que)
    Queue.printReverse(que)    
时间: 2024-10-08 14:37:02

lua队列实现的相关文章

Qless 相关知识

Qless是一个基于redis的分布式任务架构.相关代码在 https://github.com/seomoz/qless 它是完全有lua实现的,依靠 redis 对lua的支持,http://www.cnblogs.com/ghj1976/p/4298206.html 它实现了对redis的功能扩展. 有关lua的一些语法基础知识可以参考:http://www.cnblogs.com/ghj1976/p/4298178.html https://github.com/seomoz/qless

Lua 下实现一个简单的消息队列

Lua 下实现一个简单的消息队列,如下简单的几条代码就可以了. local q1 = {} local q2 = {} -- 产生消息只需要 table.insert(q1, msg) -- 分发消息需要两层循环, 可以处理 dispatch 过程中产生的新消息 while q1[1] do q1,q2 = q2,q1 for i=1,#q2 do dispatch(q2[i]) q2[i] = nil end end

chapter11_2 Lua链表与队列

链表 由于table是动态的实体,所以在Lua中实现链表是很方便的.每个节点以一个table来表示,一个“链表”只是节点table中的一个字段. 该字段包含了对其他table的引用.例如,要实现一个基础的列表,其中每个节点具有两个字段:next和value 创建一个链表: list = nil list = {next = list,value = v} --遍历此链表 local l = list while l do <访问 l.value > l = l.next end 也可以参考之前

Nginx通过LUA脚本访问RabbitMQ消息队列

发现了一个Nginx的LUA脚本:lua-resty-rabbitmqstomp,可以让Nginx通过LUA脚本访问RabbitMQ消息队列,这个脚本是通过stomp协议连接RabbitMQ的stomp适配器,来pub/sub消息的 关于RabbitMQ-STOMP安装使用相关内容可以参见:RabbitMQ STOMP Adapter 关于Nginx-LUA模块安装使用参见:LAMP架构演进到LAMPGC,再演进到LNMLGC 关于STOMP协议相关资料参见这里: STOMP官方英文协议1.1版

Lua实现的栈、队列

基于quick cocos2d-x2.2.5的API,写的一个栈,队列.满足游戏开发中的需求. 避免重复造车轮~(简单测试.留着自己用.不确定是否还存在bug) 栈Stack: 1 -- 2 -- Date: 2014-11-19 15:29:02 3 -- 4 local Stack = class("Stack") 5 6 function Stack:ctor() 7 self.stack_table = {} 8 end 9 10 function Stack:push(ele

Lua初学习 9-14_03 数据结构 ---&gt; 队列 (自己写的 跟书上差不多)

1:创建一个双向队列 list = { first =1,last = 0} function list:pushFirst(value) --从头放入一个 value local f = self.first-1 -- f=0 self[f] = value --self[0] = value self.first =f -- self.f = 0 --print(self.first,f)end function list:pushLast(value) --从尾放入一个 value loc

[转]Skynet之斗转星移 - 将控制权交给Lua

Skynet之斗转星移 - 将控制权交给Lua http://www.outsky.org/code/skynet-lua.html Sep 7, 2014 在我看来,Skynet的一个重要优势是与Lua的高度结合,完全可以用Lua写服务.用C写服务的原理很简单:通过动态链接库的形式,提供create.init和release接口,供主进程在需要的时候载入服务,并将处理消息的回调函数一并注入主进程,这样,当主进程给此服务发消息时,消息就进入此回调函数处理. 由此可见,服务最重要的部分就是这个回调

Lua的文件操作

先简单介绍一下被迫使用Lua的IO的情境: 游戏支持玩家自定义上传头像,在排行榜中会显示玩家列表(包括本服.跨服),原有的做法是先检测CCUserDefault中是否存在指定图片的key以及它的状态.然后在下载头像.下载完成后设置对应的状态.这样导致的一个问题就是CCUserDefault的读写完全失效了.整个游戏下载的补丁包判断和其它判断就完全失效了,不得卸载游戏后重装.个人目前的推测是由于多线程引起的,暂时没有有效的依据 下载头像使用的是libcurl,嗯,又是它,在做项目这么久的过程中,发

lua编程之元表与元方法

一. 前言 lua是一种非常轻量的动态类型语言,在1993年由由Roberto Ierusalimschy.Waldemar Celes 和 Luiz Henrique de Figueiredo等人发明,lua的设计目标是轻便地嵌入宿主语言,增强系统的可扩展性和可定制性.lua的源码只有两万余行,非常精简小巧,在目前的脚本引擎中,lua的速度是最快的,这也是lua进入程序设计语言前20名,如今已经广泛应用于游戏行业,这几篇文章将会讨论下lua的几个比较重要的特性. 一门语言的类型系统是其最根本