Lua 데이터 구조.

7883 단어 LUA 학습
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            nilnil       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))

좋은 웹페이지 즐겨찾기