- a={}
- for i=1,10 do
- a[i]={}
- for j=0,10 do
- if(i%2==0) then
- a[i][j]=0
- end
- end
- end
- print(a[9][10])
- print(a[10][10])
- print()
- --双端队列
- List={}
- function List.new()
- return {first = 0,last = -1}
- end
- function List.pushleft(list,value)
- local first= list.first-1
- list[first] = value
- list.first= first
- end
- function List.pushright(list,value)
- local last = list.last+1
- list[last]= value
- list.last=last
- end
- function List.popleft(list)
- local first=list.first
- if(first>list.last) then
- error("list is empty")
- end
- local res= list[first]
- list[first]=nil
- list.first=list.first+1
- return res
- end
- function List.popright(list)
- local last = list.last
- if last<first then
- error("the list is empty")
- end
- local res = list[last]
- list[last]= nil
- list.last= list.last-1
- return res
- end
- function List.display(list)
- if(list.first>list.last) then
- error("the list is empty",2)
- end
- for i=list.first ,list.last do
- print(list[i])
- end
- end
- mylist=List.new()
- List.pushleft(mylist,12)
- List.pushleft(mylist,"00")
- List.pushright(mylist,34)
- List.pushright(mylist,56)
- List.display(mylist)
- print()
- function newStack ()
- return {""}
- end
- function serialize(o)
- if type(o) == "number" then
- io.write(o)
- elseif type(o) == "string" then
- --不要手动加入引号,否则会有边际效应
- io.write(string.format("%q",o))
- elseif type(o) == "table" then
- io.write("{\n")
- for i,v in pairs(o) do
- io.write(" "..i.." = ")
- serialize(v)
- io.write(",\n")
- end
- io.write("}\n")
- end
- end
- serialize(123)
- print()
- serialize("112233")
- print()
- tab = { a=11,haha="www" ,c=333}
- serialize(tab)
- function basicSerialize (o)
- if type(o) == "number" then
- return tostring(o)
- else
- return string.format("%q", o)
- end
- end
- function save (name, value, saved)
- saved = saved or {} -- 参数未传入的初始化
- io.write(name, " = ")
- if type(value) == "number" or type(value) == "string" then
- io.write(basicSerialize(value), "\n")
- elseif type(value) == "table" then
- if saved[value] then
- io.write(saved[value], "\tcircle\n")
- else
- saved[value] = name
- io.write("{}\n")
- for k,v in pairs(value) do
- local fieldname = string.format("%s[%s]", name,
- basicSerialize(k))
- save(fieldname, v, saved)
- end
- end
- else
- error("cannot save a " .. type(value))
- end
- end
- a = {x=1, y=2; {3,4,5}}
- a[2] = a -- 循环表
- a.z = a[1] -- 共享子表
- save('a',a)
运行结果:
- nil
- 0
- 00
- 12
- 34
- 56
- 123
- "112233"
- {
- a = 11,
- c = 333,
- haha = "www",
- }
- a = {}
- a[1] = {}
- a[1][1] = 3
- a[1][2] = 4
- a[1][3] = 5
- a[2] = a circle
- a["y"] = 2
- a["x"] = 1
- a["z"] = a[1] circle
本篇博客出自 阿修罗道,转载请注明出处:http://blog.youkuaiyun.com/fansongy/article/details/7007371