Lua数据结构。
2017-04-17 18:16
141 查看
Lua数组/矩阵
> 方法一: local function DoTest() array = {} for i = 1,4 do array[i] = {} for j = 1,4 do array[i][j] = 12 end end for i = 1,4 do for j = 1,4 do print(array[i][j]) end end end > 方法二: local function DoTest() local array = {} for i = 1,4 do for j = 1,4 do -- 这里是一种计算偏差,这其实相当于一个一维连续数组了。 array[(i - 1) * 4 + j] = 12 end end for k = 1,4 do for v = 1,4 do print(array[(k - 1) * 4 + v]) end end end
Lua链表实现
list = nil for i = 1,100 do -- 这里next = list不太理解,它是怎么找到下一个的list的呐? list = {next = list,value = i} end local l = list while l do print(l.value) l = l.next end -- 其实我还是详细理解了一下,但我理解出来的结果是这样的。 -- 上面的一句其实好像先自己弄了一个不知道哪来的相同结构表, -- 然后再把这个表给上一个list,所以我发现输出结果是倒序的。 temp = {} -- 这里的list 实际上就是刚声明的那个nil,把nil赋值给新的表的next -- 但是如果是第二次添加的话,这个list就是指第一个添加的list了,依此类推。 -- 其实这里是最不理解的了,它是怎么知道我现在是第几个表的哇? -- 大约过了5分钟。。。 -- 我现在明白了,因为list是一个全局变量,再我最后一句赋值后,下次再进来的时候, -- 明显他的next就是上次赋值后的那个list了,然后依此类推,并且它们是包括与被包括的。 -- next的值是另一个table,然后table里还有table。。。 temp.next = list temp.data = var list = temp
Lua队列
-- 这里想到的就是双端,每一端都是独立的一个队列。可以理解为一个x轴, -- pushfirst越多,first值越小,依此类推。 local 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 > list.last then error("list is empty") end local value = list[last] list[last] = nil list.last = last - 1 return value end list = List.new() List.pushfirst(list,1990) List.pushlast(list,1991) print(List.popfirst(list)) print(List.poplast(list))
相关文章推荐
- Lua数据结构 — Table(三)
- Lua数据结构 — 闭包(四)
- lua的数据结构 -- 多维数组
- Lua数据结构 — 闭包(四)
- lua的数据结构 -- 链表
- 通过例子学习Lua(3) ---- Lua数据结构 (转)
- Cocos2d-x 脚本语言Lua基本数据结构-表(table)
- Lua中使用table实现的其它5种数据结构
- lua中的数据结构-table常用函数库
- Lua中使用table实现的其它5种数据结构
- Lua学习笔记(八):数据结构
- lua数据结构之table的内部实现
- Lua学习之5:基本数据结构-表(Table)
- 通过例子学习Lua(3) ---- Lua数据结构
- Lua的数据结构
- lua基础【三】唯一数据结构table表
- 数据结构 链表的lua实现 仿照C++中list 实现
- Step By Step(Lua数据结构)
- Lua中使用table实现的其它5种数据结构(数组、链表、队列、集合和包、StringBuild)
- Lua数据结构的学习笔记