RosettaCodeData/Task/Tree-traversal/Quackery/tree-traversal.quackery
2023-07-01 13:44:08 -04:00

47 lines
978 B
Text

[ this ] is nil ( --> [ )
[ ' [ 1
[ 2
[ 4
[ 7 nil nil ]
nil ]
[ 5 nil nil ] ]
[ 3
[ 6
[ 8 nil nil ]
[ 9 nil nil ] ]
nil ] ] ] is tree ( --> [ )
[ dup nil = iff drop done
unpack swap rot
echo sp
recurse
recurse ] is pre-order ( [ --> )
[ dup nil = iff drop done
unpack unrot
recurse
echo sp
recurse ] is in-order ( [ --> )
[ dup nil = iff drop done
unpack swap
recurse
recurse
echo sp ] is post-order ( [ --> )
[ queue swap push
[ dup empty?
iff drop done
pop
dup nil = iff
drop again
unpack
rot echo sp
dip push push
again ] ] is level-order ( [ --> )
tree pre-order cr
tree in-order cr
tree post-order cr
tree level-order cr