2.队列
List={}
function List.new()
return{first=0,last=-1}
end
function List.pushFront(list,value)
local first=list.first-1
list.first=first
list[first]=value
end
function List.pushBack(list,value)
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+1
if list.first>last then
error("list is empty")
end
local value=list[last]
list[last]=nil
list.last=last-1
return value
end
local tab=List.new()
List.pushBack(tab,1)
List.pushBack(tab,2)
List.pushBack(tab,3)
print(tab.first,tab.last) -- -3 -1
print(List.popFront(tab)) --3
print(List.popFront(tab)) --2
print(List.popFront(tab)) --1
- StringBuilder
local str={4,5,6,7,8}
print(table.concat( str, ","))
4.反向表
days={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
reyDays={}
for k,v in pairs(days) do
reyDays[v]=k
end
print(reyDays.Monday)--2