实现的太简单。
queue = {}
function queue.new()
return { first = 0, last = -1 }
end
function queue.push( Q, value)
local last = Q.last + 1
Q.last = last
Q[last] = value
end
function queue.pop (Q)
local first = Q.first
if first > Q.last then error("Q is empty") end
local value = Q[first]
Q[first] = nil
Q.first = Q.first + 1
end
nqueue = queue.new()
for i = 1, 10 ,2 do
queue.push( nqueue, i)
end
-- 因为last 是从-1 开始的,压入栈的时候 第一个元素 last = 0
for m = 0, #nqueue do
print(nqueue[m])
end
-- 怎么有效排序
for m,n in pairs(nqueue) do
print(m,n)
end
print(nqueue[last]) -- nil
print(nqueue.last)