Tree traversal: Difference between revisions

m
→‎{{header|REBOL}}: renamed second and third with left and right
m (→‎{{header|REBOL}}: added visit func)
m (→‎{{header|REBOL}}: renamed second and third with left and right)
Line 8,986:
 
visit: func [tree [block!]][prin rejoin [first tree " "]]
left: :second
right: :third
 
preorder: func [tree [block!]][
if not empty? tree [visit tree]
attempt [preorder secondleft tree]
attempt [preorder thirdright tree]
]
prin "preorder: " preorder tree
Line 8,996 ⟶ 8,998:
 
inorder: func [tree [block!]][
attempt [inorder secondleft tree]
if not empty? tree [visit tree]
attempt [inorder thirdright tree]
]
prin "inorder: " inorder tree
Line 9,004 ⟶ 9,006:
 
postorder: func [tree [block!]][
attempt [postorder secondleft tree]
attempt [postorder thirdright tree]
if not empty? tree [visit tree]
]
Line 9,020 ⟶ 9,022:
tree: dequeue queue
if not empty? tree [visit tree]
attempt [enqueue secondleft tree]
attempt [enqueue thirdright tree]
]
]
Anonymous user