簡易堆疊 |
|
Stack:Create()
將傳回一個表格,這個表格包含堆疊函式,例如 pop
和 push
。一個呼叫可以 push/pop 多個元素。範例用法
-- create stack stack = Stack:Create() -- push values on to the stack stack:push("a", "b") -- pop values stack:pop(2)
程式碼
-- Stack Table -- Uses a table as stack, use <table>:push(value) and <table>:pop() -- Lua 5.1 compatible -- GLOBAL Stack = {} -- Create a Table with stack functions function Stack:Create() -- stack table local t = {} -- entry table t._et = {} -- push a value on to the stack function t:push(...) if ... then local targs = {...} -- add values for _,v in ipairs(targs) do table.insert(self._et, v) end end end -- pop a value from the stack function t:pop(num) -- get num values from stack local num = num or 1 -- return table local entries = {} -- get values into entries for i = 1, num do -- get last entry if #self._et ~= 0 then table.insert(entries, self._et[#self._et]) -- remove last value table.remove(self._et) else break end end -- return unpacked entries return unpack(entries) end -- get entries function t:getn() return #self._et end -- list values function t:list() for i,v in pairs(self._et) do print(i, v) end end return t end -- CHILLCODE�