43 lines
999 B
Plaintext
43 lines
999 B
Plaintext
enum data, left, right
|
|
|
|
function tmap(sequence tree, integer rid)
|
|
tree[data] = call_func(rid,{tree[data]})
|
|
if tree[left]!=null then tree[left] = tmap(tree[left],rid) end if
|
|
if tree[right]!=null then tree[right] = tmap(tree[right],rid) end if
|
|
return tree
|
|
end function
|
|
|
|
function newnode(object v)
|
|
return {v,null,null}
|
|
end function
|
|
|
|
function add10(atom x) return x+10 end function
|
|
|
|
procedure main()
|
|
object root = newnode(1.00)
|
|
-- Add some nodes.
|
|
root[left] = newnode(1.10)
|
|
root[left][left] = newnode(1.11)
|
|
root[left][right] = newnode(1.12)
|
|
|
|
root[right] = newnode(1.20)
|
|
root[right][left] = newnode(1.21)
|
|
root[right][right] = newnode(1.22)
|
|
|
|
-- Now the tree has seven nodes.
|
|
|
|
-- Show the whole tree.
|
|
ppOpt({pp_Nest,2})
|
|
pp(root)
|
|
|
|
-- Modify the whole tree.
|
|
root = tmap(root,routine_id("add10"))
|
|
|
|
-- Create a whole new tree.
|
|
object root2 = tmap(root,rid)
|
|
|
|
-- Show the whole tree again.
|
|
pp(root)
|
|
end procedure
|
|
main()
|