Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
28.06.2014
Размер:
657 б
Скачать
// Вставка элемента в бинарное дерево поиска (без ребалансировки).
Data Tree['t]
{
Tree = c_leaf ++ Tree['t] * 't * Tree['t].c_node;
}

Scheme BinaryTree
{
// Elem * Tree -> Tree
Fun TreeInsert
{
@ = [2].~c_leaf -> (c_leaf * [1] * c_leaf).c_node,
[2].~c_node -> (([1]*[2].~c_node.[2]).less ->
(([1]*[2].~c_node.[1]).TreeInsert * [2].~c_node.([2]*[3])).c_node,
([2].~c_node.([1]*[2])*([1]*[2].~c_node.[3]).TreeInsert).c_node);
}

@ = (0*(9*(6*(1*(7*(3*(5*c_leaf).TreeInsert).TreeInsert).TreeInsert).TreeInsert).TreeInsert).TreeInsert).TreeInsert.print;
}

Application
% BinaryTree
Соседние файлы в папке Examples