Sorting algorithms/Tree sort on a linked list: Difference between revisions

(Improve task or delete it.)
Line 151:
5 3 7 9 1 -> 1 3 5 7 9
d c e b a -> a b c d e
</pre>
 
=={{header|Phix}}==
{{trans|Kotlin}}
<lang Phix>enum KEY,LEFT,RIGHT
function tree_insert(object node, item)
if node=NULL then
node = {item,NULL,NULL}
elsif item<node[KEY] then
node[LEFT] = tree_insert(node[LEFT],item)
else
node[RIGHT] = tree_insert(node[RIGHT],item)
end if
return node
end function
 
function inOrder(object node)
sequence res = {}
if node!=NULL then
res = inOrder(node[LEFT])
res &= node[KEY]
res &= inOrder(node[RIGHT])
end if
return res
end function
procedure treeSort(sequence s)
object tree = NULL
for i=1 to length(s) do tree = tree_insert(tree,s[i]) end for
pp({s," => ",inOrder(tree)})
end procedure
treeSort({5, 3, 7, 9, 1})
treeSort("dceba")</lang>
{{out}}
<pre>
{{5,3,7,9,1}, " => ", {1,3,5,7,9}}
{"dceba", " => ", "abcde"}
</pre>
 
7,818

edits