您的位置:首页 > 编程语言 > Lua

lua data structure

2014-02-13 16:09 155 查看
数组
a = {}
for i = 1, 1000 do
a[i] = 0
end

print(#a)    -->1000

a = {}
for i = -5, 5 do
a[i] = 0
end

矩阵

mt = {}
for i = 1, N do
mt[i] = {}
for j = 1, M do
mt[i][j] = 0
end
end

mt = {}
for i, N do
for j = 1, M do
mt[(i - 1)* M + j] = 0
end
end

将矩阵乘以一个常数
function mult (a, rowindex, k)
local row = a[rowindex]
for i, v in pairs(row) do
row[i] = v * k
end
end

链表
list = {next = list, value = v}

遍历列表
lcoal l = list
while l  do
<>
l = l.next
end

队列

List = {}
function List.new ()
return {first = 0, last = -1}
end

function List.pushfirst (list, value)
local first = list.first - 1
list.first = first
list[first] = value
end

function List.pushlast (list, value)
local last = list.last + 1
list.last = last
list[last] = value
end

function List.popfirst (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.poplast (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

l = List.new()
List.pushfirst(l, "sun")
List.pushfirst(l, "yan")
print(List.popfirst(l))
print(List.popfirst(l))

字符串缓冲

使用函数table.concat

local t = {}
for line in io.read() do
t[#t + 1] = line .. "\n"
end
local s = table.concat(t)

<==>
local t = {}
for line in io.lines() do
t[#t + 1] = line
end

local s = table.concat(t, "\n")
print(s)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: