Lua資料結構。

2021-07-30 16:34:57 字數 2392 閱讀 8386

> 方法一:

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

dofor j = 1,4

do print(array[i][j])

endend

end> 方法二:

local

function

dotest()

local array = {}

for i = 1,4

dofor j = 1,4

do-- 這裡是一種計算偏差,這其實相當於乙個一維連續陣列了。

array[(i - 1) * 4 + j] = 12

end end

for k = 1,4

dofor v = 1,4

do print(array[(k - 1) * 4 + v])

endend

end

list = nil

for i = 1,100 do

-- 這裡next = list不太理解,它是怎麼找到下乙個的list的吶?

list =

endlocal 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

-- pushfirst越多,first值越小,依此類推。

local list = {}

function list.new()

return

endfunction list.pushfirst(list,value)

local

first = list.first - 1

list.first = first

list[first] = value

endfunction list.pushlast(list,value)

local

last = list.last + 1

list.last = last

list[last] = value

endfunction list.popfirst(list)

local

first = list.first

iffirst > list.last

then

error("list is empty") end

local value = list[first]

list[first] = nil

list.first = first + 1

return value

endfunction list.poplast(list)

local

last = list.last

iflist.first > list.last

then

error("list is empty") end

local value = list[last]

list[last] = nil

list.last = last - 1

return value

endlist = list.new()

list.pushfirst(list,1990)

list.pushlast(list,1991)

print(list.popfirst(list))

print(list.poplast(list))

Lua資料結構

1.簡介 lua語言只有一種基本資料結構,那就是table,所有其他資料結構如陣列啦,類啦,都可以由table實現.2.table的下標 例e05.lua arrays mydata mydata 0 foo mydata 1 42 hash tables mydata bar baz iterat...

lua資料結構

1.說明 k v資料結構,k非nil的任意型別 2.賦值local tab 初始化 key 預設 local tab 訪問 tab 1 key 數字 local tab 訪問 tab 60 key 字串 local tab 訪問 tab.aa 1.方法一 local tab 1.增table.ins...

Lua資料結構

1.簡介 lua語言只有一種基本資料結構,那就是table,所有其他資料結構如陣列啦,類啦,都可以由table實現.2.table的下標 例e05.lua arrays mydata mydata 0 foo mydata 1 42 hash tables mydata bar baz iterat...