Tree traversal: Difference between revisions
Content added Content deleted
(→{{header|Lua}}: simpler, easier to understand) |
Antoni Gual (talk | contribs) |
||
Line 10,353: | Line 10,353: | ||
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|VBScript}}== |
|||
<syntaxhighlight lang="vb"> |
|||
' 1 |
|||
' / \ |
|||
' / \ |
|||
' / \ |
|||
' 2 3 |
|||
' / \ / |
|||
' 4 5 6 |
|||
' / / \ |
|||
' 7 8 9 |
|||
'with no pointers available, the binary tree has to be saved in an array |
|||
' root at index 1 |
|||
' parent index is i\2 |
|||
' children indexes are i*2 and i*2+1 |
|||
' a value of 0 denotes an empty branch |
|||
Sub print(s): |
|||
On Error Resume Next |
|||
WScript.stdout.Write(s) |
|||
If err= &h80070006& Then WScript.Echo " Please run this script with CScript": WScript.quit |
|||
End Sub |
|||
Sub inorder(i) |
|||
If tree(i*2)<>0 Then inorder(i*2) |
|||
print tree(i)& vbtab |
|||
If tree(i*2+1)<>0 Then inorder(i*2+1) |
|||
End Sub |
|||
Sub preorder(i) |
|||
print tree(i)& vbtab |
|||
If tree(i*2)<>0 Then preorder(i*2) |
|||
If tree(i*2+1)<>0 Then preorder(i*2+1) |
|||
End Sub |
|||
Sub postorder(i) |
|||
If tree(i*2)<>0 Then postorder(i*2) |
|||
If tree(i*2+1)<>0 Then postorder(i*2+1) |
|||
print tree(i)& vbTab |
|||
End Sub |
|||
Sub levelorder(x) |
|||
Dim i |
|||
For i= 1 To UBound(tree) |
|||
If tree(i)<>0 Then print tree(i)& vbTab |
|||
Next |
|||
End sub |
|||
Dim tree |
|||
' 1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526 |
|||
' 1 2 2 3 3 3 3 4 4 4 4 4 4 4 4 |
|||
tree=Array(0,1,2,3,4,5,6,0,7,0,0,0,8,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0) |
|||
print vbCrLf & "Preorder" & vbcrlf |
|||
preorder(1) |
|||
print vbCrLf & "Inorder" & vbcrlf |
|||
inorder(1) |
|||
print vbCrLf & "Postorder" & vbcrlf |
|||
postorder(1) |
|||
print vbCrLf & "Levelorder" & vbcrlf |
|||
levelorder(1) |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<small> |
|||
<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> |
|||
</small> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |