26 lines
964 B
Text
26 lines
964 B
Text
tree = Any[1, Any[2, Any[4, Any[7, Any[],
|
|
Any[]],
|
|
Any[]],
|
|
Any[5, Any[],
|
|
Any[]]],
|
|
Any[3, Any[6, Any[8, Any[],
|
|
Any[]],
|
|
Any[9, Any[],
|
|
Any[]]],
|
|
Any[]]]
|
|
|
|
preorder(t, f) = if !isempty(t)
|
|
f(t[1]); preorder(t[2], f); preorder(t[3], f)
|
|
end
|
|
|
|
inorder(t, f) = if !isempty(t)
|
|
inorder(t[2], f); f(t[1]); inorder(t[3], f)
|
|
end
|
|
|
|
postorder(t, f) = if !isempty(t)
|
|
postorder(t[2], f); postorder(t[3], f); f(t[1])
|
|
end
|
|
|
|
levelorder(t, f) = while !isempty(t)
|
|
t = mapreduce(x -> isa(x, Number) ? (f(x); []) : x, vcat, t)
|
|
end
|