Tree traversal: Difference between revisions

Content added Content deleted
(Add CLU)
No edit summary
Line 8,815: Line 8,815:
[7 4 5 2 8 9 6 3 1]
[7 4 5 2 8 9 6 3 1]
[1 2 3 4 5 6 7 8 9]</pre>
[1 2 3 4 5 6 7 8 9]</pre>

=={{header|Quackery}}==

<lang Quackery>
[ 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 ( [ --> )

[ stack [ ] ] is queue ( --> s )

[ queue share [] = ] is qempty ( --> b )

[ queue take
swap nested join
queue put ] is enqueue ( x --> )

[ queue take
behead swap
queue put ] is dequeue ( --> x )

[ enqueue
[ qempty not while
dequeue
dup nil = iff
drop again
unpack swap
enqueue
enqueue
echo sp again ] ] is level-order ( [ --> )

tree pre-order cr
tree in-order cr
tree post-order cr
tree level-order cr</lang>

{{out}}

<pre>1 2 4 7 5 3 6 8 9
7 4 2 5 1 8 6 9 3
7 4 5 2 8 9 6 3 1
1 2 3 4 5 6 7 8 9
</pre>


=={{header|Racket}}==
=={{header|Racket}}==