2018-11-01 15:12:45 +03:00
|
|
|
fun insert (tree, value) {
|
|
|
|
|
case tree of
|
2019-03-07 19:06:04 +03:00
|
|
|
Empty -> return Node (value, Empty, Empty)
|
|
|
|
|
| Node (x, left, right) ->
|
2018-11-01 15:12:45 +03:00
|
|
|
if x > value
|
2019-03-07 19:06:04 +03:00
|
|
|
then return Node (x, insert (left, value), right)
|
|
|
|
|
else return Node (x, left, insert (right, value))
|
2018-11-01 15:12:45 +03:00
|
|
|
fi
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
2019-11-19 03:24:17 +03:00
|
|
|
local i, tree = Empty;
|
2018-11-01 15:12:45 +03:00
|
|
|
|
|
|
|
|
for i := 0, i <= 10, i := i+1 do
|
|
|
|
|
printf ("%s\n", tree.string);
|
|
|
|
|
tree := insert (tree, i)
|
|
|
|
|
od;
|
|
|
|
|
|
|
|
|
|
printf ("%s\n", tree.string)
|