Tree traversal: Difference between revisions
→{{header|Lua}}: simpler, easier to understand
Thundergnat (talk | contribs) m (fix markup) |
(→{{header|Lua}}: simpler, easier to understand) |
||
Line 6,935:
=={{header|Lua}}==
<syntaxhighlight lang="lua">
local function
if type(tr[val]) == "table" then
table.insert(t1, v)▼
depth_first(tr[val], a, b, c, flat_list)
end▼
elseif type(tr[val]) ~= "nil" then
end -- if
end -- for
return flat_list
end
local function flatten_pre_order(tr) return depth_first(tr, 1, 2, 3, {}) end
local function flatten_in_order(tr) return depth_first(tr, 2, 1, 3, {}) end
local function flatten_post_order(tr) return depth_first(tr, 2, 3, 1, {}) end
local function flatten_level_order(tr)
local
while next(queue) do -- while queue is not empty▼
local node = table.remove(queue, 1) -- dequeue▼
if type(node) == "table" then
table.insert(queue, node[3]) -- enqueue
else
return r▼
end -- if
▲ end -- while
▲ while next(queue) do
▲ local node = table.remove(queue, 1)
▲ table.insert(levelorder, node[1])
▲ table.insert(queue, node[2])
▲ table.insert(queue, node[3])
end
-- Example
local tree =
print("
print("
print("
print("
</syntaxhighlight>
=={{header|M2000 Interpreter}}==
|