List = {}
-- first用于队列头部索引 last用于队列尾部索引
function List.new()
return {first = 0, last = -1}
end
function List.pushFront(list, value)
-- first用于向负数进攻
local first = list.first - 1
list.first = first
list[first] = value
end
function List.pushBack(list, value)
-- last用于向正数进攻
local last = list.last + 1
list.last = last
list[last] = value
end
function List.popFront(list)
local first = list.first
if first > list.last then
error("List is empty")
end
local value = list[first]
list[first] = nil
list.first = first + 1
return value
end
function List.popBack(list)
local last = list.last
if list.first > last then
error("List is empty")
end
local value = list[last]
list[last] = nil
list.last = last - 1
return value
end
lp=List.new()
--队列头部插入1 : 1
--队列头部插入2 : 2 1
--队列尾部插入-1 : 2 1 -1
--队列尾部插入-2 : 2 1 -1 -2
List.pushFront(lp,1)
List.pushFront(lp,2)
List.pushBack(lp,-1)
List.pushBack(lp,-2)
--队列头部弹出; 2
x=List.popFront(lp)
print(x)
--队列尾部弹出; -2
x=List.popBack(lp)
print(x)
--队列头部弹出; 1
x=List.popFront(lp)
print(x)
--队列尾部弹出; -1
x=List.popBack(lp)
print(x)
-- first用于队列头部索引 last用于队列尾部索引
function List.new()
return {first = 0, last = -1}
end
function List.pushFront(list, value)
-- first用于向负数进攻
local first = list.first - 1
list.first = first
list[first] = value
end
function List.pushBack(list, value)
-- last用于向正数进攻
local last = list.last + 1
list.last = last
list[last] = value
end
function List.popFront(list)
local first = list.first
if first > list.last then
error("List is empty")
end
local value = list[first]
list[first] = nil
list.first = first + 1
return value
end
function List.popBack(list)
local last = list.last
if list.first > last then
error("List is empty")
end
local value = list[last]
list[last] = nil
list.last = last - 1
return value
end
lp=List.new()
--队列头部插入1 : 1
--队列头部插入2 : 2 1
--队列尾部插入-1 : 2 1 -1
--队列尾部插入-2 : 2 1 -1 -2
List.pushFront(lp,1)
List.pushFront(lp,2)
List.pushBack(lp,-1)
List.pushBack(lp,-2)
--队列头部弹出; 2
x=List.popFront(lp)
print(x)
--队列尾部弹出; -2
x=List.popBack(lp)
print(x)
--队列头部弹出; 1
x=List.popFront(lp)
print(x)
--队列尾部弹出; -1
x=List.popBack(lp)
print(x)