lua定长循环队列
来源:互联网 发布:电路模拟软件 编辑:程序博客网 时间:2024/06/05 02:53
1
--[[
-- 循环队列与顺序队列区别,删除后的空间依旧可以利用
queue={}
queuesize=3
function queue.new()
return {front=0,rear=0}
end
function isFull(Q)
if Q.front==(Q.rear+1)%queuesize then-- 表满
return true
else
return false
end
end
function PushQueue(Q,val)
if isFull(Q) then return print("Full")
else
Q.rear=(Q.rear+1)%queuesize --入队,尾部后移
Q[Q.rear]=val --赋值队尾
return Q[Q.rear]
end
end
function isEnemty(Q)
if Q.front==Q.rear then--队首与队尾相同,表为空
return true
else
return false
end
end
function PopQueue(Q)
if isEnemty(Q) then return print("Nil")
else
Q.front=(Q.front+1)%queuesize
return Q[Q.front]
end
end
function PrintQueueElement()
local m="k"
local n="QueueValue"
for k,v in pairs(myqueue) do
m=m .. " " .. k
n=n .. " " .. v
end
--print(m)
print(n)
end
myqueue=queue.new()
PushQueue(myqueue,20)
PushQueue(myqueue,30)
PrintQueueElement()
PopQueue(myqueue)
PopQueue(myqueue)
PrintQueueElement()
PushQueue(myqueue,41)
PushQueue(myqueue,42)
PushQueue(myqueue,4)
PrintQueueElement()
--]]
2
--[[count,front,tail=0,0,0
local Size=4--定长
queue={}--循环队列
function isEnemty()
return count==0
end
function isFull()
return count==Size
end
function push(val)
if isFull() then return print("Queue is Full") end
tail=tail+1
queue[tail]=val
count=count+1
return queue[#queue]
end
function pop()
if isEnemty() then return print("Queue is Enempty") end
front=(front+1)%Size
count=count-1
return queue[front]
end
function test ()
for i=1,5 do
print(push(i))
end
for i=1,5 do
print(pop())
end
end
test()--]]
---------------------------------------------------------MEthod3(insert,与Remove大数据量时效率低)
--[[ Quene={}
local Length=4
function PushQueue(value)
if #Quene<Length then
table.insert(Quene,1,value)
else
return nil
end
end
function PopQueue()
local val=nil
if #Quene>=1 then
val=Quene[#Quene]
table.remove(Quene,#Quene)
else
return nil
end
return val
end
PushQueue(1)
PushQueue(2)
PushQueue(3)
PushQueue(4)
PushQueue(5)
print(PopQueue())
print(PopQueue())
print(PopQueue())
print(PopQueue())
print(PopQueue())
print(PopQueue())--]]
- lua定长循环队列
- lua定长循环队列2
- 8.用定长数组 实现 循环队列
- python deque定长队列
- lua-队列
- lua-循环
- Lua循环
- Lua 循环
- Lua 循环
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 进程与线程之间的关系
- RandomAccessFile的文件读写与seek()的用法
- python使用环境的设置
- Tensorflow教程-MNIST机器学习入门
- phpcms v9 二次开发总结
- lua定长循环队列
- windows update独立安装程序一直在此计算机上搜索更新
- vim使用
- Tensorfloe教程-深入mnist
- matlab转为c或者c++
- cookie
- 斯坦福机器学习实验之2-逻辑回归(Logistic Regression)
- javascript中的数据类型
- Angular开发(十六)-HTTP请求的详细介绍