Tree traversal: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (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}}== |