Lua队列的概念以及使用简单使用,实现微信信息弹窗UI功能(cocos 2dx)

从网上看到,很多关于lua队列的,但是都没有具体的使用方式,有空将自己做的贴出来,希望大家能指点一二。

栈和队列概念理解:

**相同点:**从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。
**不同点:**栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。 队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。它们是完全不同的数据类型。除了它们各自的基本操作集不同外,主要区别是对插入和删除操作的"限定"。

**栈:**必须按==“后进先出”==的规则进行操作:举个例子比较容易理解,老师批改试卷,(不考虑打乱顺序),老师批改的试卷,就会从最后交试卷的那个同学开始批改,试卷看作是一个栈中的元素,那么最后一个同学交的试卷就是栈顶元素,而第一个同学交的,也就是最低端的作业本,就是栈底元素,这就是对栈的读取规则。

**队列:**按照==“先进先出”==的规则进行操作:举个例子,排队取钱,(就别说插队这种可能啦~~遵守道德规范人人有责~),排在前面的人一定会先取到钱,然后最先离开银行,一个接一个顺序执行,这些等候服务的人看作是队的元素,第一个人就是对头元素,相应的,最后一个人就是队尾元素。这是队的读取规则。

以下是lua队列的数据结构:

LuaQueue = class("LuaQueue")

LuaQueue.CAPACITY_INFINITE = 0

LuaQueue._dataList = nil
LuaQueue._dataCapacity = nil

function LuaQueue:ctor(capacity)
    self._dataCapacity = capacity or LuaQueue.CAPACITY_INFINITE
    self._dataList = {}
end

--将数据存入表里
function LuaQueue:push(data) 
    if self:isFull() then
        self:pop()
    end

    self._dataList[#self._dataList+1] = data
end

--取出数据
function LuaQueue:pop()
    if self:isE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值