lua Queue

2016-4-6 雨辰 Lua

--实现队列与双端队列
Queue={}
function Queue:new()
   return {first = 0, last = -1}
end

function Queue:pushFront(queue, value)
    queue.first = queue.first-1
    queue[queue.first]=value
end

function Queue:pushBack(queue, value)
    queue.last = queue.last+1
    queue[ queue.last ]=value
end

function Queue:popFront(queue)
    local first=queue.first
    if first>queue.last 
        then error("List is empty!")
    end

    local value =queue[first]
    queue[first]=nil
    queue.first=first+1
    return value
end

function Queue:popBack(queue)
    local last=queue.last
    if last<queue.first 
        then error("List is empty!")
    end
    local value =queue[last]
    queue[last]=nil
    queue.last=last-1
    return value
end

 

标签: lua

发表评论:

雨辰 joyimp|@2011-2018 京ICP备16030765号