<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                Lua中的table不是一種簡單的數據結構,它可以作為其它數據結構的基礎。如數組、記錄、線性表、隊列和集合等,在Lua中都可以通過table來表示。? ## 一、數組 在lua中通過整數下標訪問表中的元素即可簡單的實現數組。并且數組不必事先指定大小,大小可以隨需要動態的增長。 ~~~ a = {} for i = 1,100 do a[i] = 0 end print("The length of array 'a' is " .. #a) squares = {1, 4, 9, 16, 25} print("The length of array 'a' is " .. #squares) ~~~ 在Lua中習慣上數組的下表從1開始,Lua的標準庫與此習慣保持一致,因此如果你的數組下標也是從1開始你就可以直接使用標準庫的函數,否則就無法直接使用。 ## 二、二維數組 Lua中主要有兩種表示矩陣的方法,第一種是用數組的數組表示。也就是說一個表的元素是另一個表。 ~~~ local N = 3 local M = 3 mt = {} for i = 1,N do mt[i] = {} for j = 1,M do mt[i][j] = i * j end end mt = {} for i = 1, N do for j = 1, M do mt[(i - 1) * M + j] = i * j end end ~~~ # ## 三、鏈表 Lua中用tables很容易實現鏈表,每一個節點是一個table,指針是這個表的一個域,并且指向另一個節點(table)。例如,要實現一個只有兩個域:值和指針的基本鏈表,代碼如下: ~~~ list = nil for i = 1, 10 do list = { next = list ,value = i} end local l = list while l do --print(l.value) l = l.next end ~~~ ## 四、隊列與雙向隊列 雖然可以使用Lua的table庫提供的insert和remove操作來實現隊列,但這種方式實現的隊列針對大數據量時效率太低,有效的方式是使用兩個索引下標,一個表示第一個元素,另一個表示最后一個元素。 ~~~ List = {} --創建 function List.new() return {first = 0,last = -1} end --隊列頭插入 function List.pushFront(list,value) local first = list.first - 1 list.first = first list[first] = value end --隊列尾插入 function List.popFront(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.popBack(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 --測試代碼 local testList = {first = 0,last = -1} local tableTest = 12 List.pushFront(testList,tableTest) print( List.popFront(testList)) ~~~ ## 五、棧 簡單實現堆棧功能,代碼如下: ~~~ local stackMng = {} stackMng.__index = stackMng function stackMng:new() local temp = {} setmetatable(temp,stackMng) return temp end function stackMng:init() self.stackList = {} end function stackMng:reset() self:init() end function stackMng:clear() self.stackList = {} end function stackMng:pop() if #self.stackList == 0 then return end if self.stackList[1] then print(self.stackList[1]) end return table.remove(self.stackList,1) end function stackMng:push(t) table.insert(self.stackList,t) end function stackMng:Count() return #self.stackList end --測試代碼 object = stackMng:new() object:init() object:push(1) object:pop() ~~~ ## 六、集合 在Lua中用table實現集合是非常簡單的,見如下代碼: ~~~ reserved = { ["while"] = true, ["end"] = true, ["function"] = true, ["local"] = true, } for k,v in pairs(reserved) do print(k,"->",v) end ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看