源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

62 行
1.2 KiB

List = {}
local List = List
function List.New()
return {first = 0, last = -1}
end
function List.Size(list)
if list.first > list.last then
return 0
else
return list.last + 1 - list.first
end
end
function List.Empty(list)
return list.first > list.last
end
function List.Get(list, index)
local index = list.first + index
return list[index]
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 LogError("list is empty") end
local value = list[first]
list[first] = nil -- to allow garbage collection
list.first = first + 1
return value
end
function List.PopBack(list)
local last = list.last
if list.first > last then LogError("list is empty") end
local value = list[last]
list[last] = nil -- to allow garbage collection
list.last = last - 1
return value
end
function List.GetBack(list)
local last = list.last
return list[last]
end
function List.GetFront(list)
local first = list.first
return list[first]
end