Tree traversal: Difference between revisions
Content added Content deleted
imported>Arakov |
Not a robot (talk | contribs) (add Refal) |
||
Line 9,754: | Line 9,754: | ||
level-order: 1 2 3 4 5 6 7 8 9 |
level-order: 1 2 3 4 5 6 7 8 9 |
||
</pre> |
</pre> |
||
=={{header|Refal}}== |
|||
<syntaxhighlight lang="refal">$ENTRY Go { |
|||
= <Show Preorder <Tree>> |
|||
<Show Inorder <Tree>> |
|||
<Show Postorder <Tree>> |
|||
<Show Levelorder <Tree>>; |
|||
}; |
|||
Show { |
|||
s.F t.T = <Prout s.F ': ' <Mu s.F t.T>>; |
|||
}; |
|||
Tree { |
|||
= (1 (2 (4 (7 () ()) ()) (5 () ())) (3 (6 (8 () ()) (9 () ())) ())); |
|||
}; |
|||
Preorder { |
|||
() = ; |
|||
(s.V t.L t.R) = s.V <Preorder t.L> <Preorder t.R>; |
|||
}; |
|||
Inorder { |
|||
() = ; |
|||
(s.V t.L t.R) = <Inorder t.L> s.V <Inorder t.R>; |
|||
}; |
|||
Postorder { |
|||
() = ; |
|||
(s.V t.L t.R) = <Postorder t.L> <Postorder t.R> s.V; |
|||
}; |
|||
Levelorder { |
|||
= ; |
|||
() e.Q = <Levelorder e.Q>; |
|||
(s.V t.L t.R) e.Q = s.V <Levelorder e.Q t.L t.R>; |
|||
};</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Preorder : 1 2 4 7 5 3 6 8 9 |
|||
Inorder : 7 4 2 5 1 8 6 9 3 |
|||
Postorder : 7 4 5 2 8 9 6 3 1 |
|||
Levelorder : 1 2 3 4 5 6 7 8 9</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |