Некоторые из случаев
Рисунок 10. 5. Некоторые из случаев работы отношения встав.
(a) встав( в2( Д1, М, Д2), X, в2( НД1, М, Д2) );
(b) встав( в2( Д1, М, Д2), X,
в3( НД1а, Мб, НД1б, М, Д2) );
(c) встав( в3( Д1, М2, Д2, М3, Д3), X,
в2( НД1а, Мб, НД1б), М2, в2( Д2, М3, Д3) ).
line();
% Вставление элемента в 2-3 справочник
доб23( Дер, X, Дер1) :-
% Вставить Х в Дер, получить Дер1
встав( Дер, X, Дер1).
% Дерево растет вширь
доб23( Дер, X, в2( Д1, М2, Д2) ) :-
встав( Дер, X, Д1, М2, Д2). % Дерево растет вглубь
доб23( nil, X, л( Х) ).
встав( л( А), X, л( А), X, л( Х) ) :-
больше( X, А).
встав( л( А), X, л( Х), А, л( А) ) :-
больше( А, X).
встав( в2( Д1, М, Д2), X, в2( НД1, М, Д2) ) :-
больше( М, X),
встав( Д1, X, НД1).
встав( в2( Д1, М, Д2), Х, в3( НД1а, Мб, НД1б, М, Д2) ) :-
больше( М, X),
встав( Д1, X, НД1а, Мб, НД1б).
встав( в2( Д1, М, Д2), X, в2( Д1, М, НД2) ) :-
больше( X, М),
встав( Д2, X, НД2).
встав( в2( Д1, М, Д2), Х, в3( Д1, М, НД2а, Мб, НД2б) ) :-
больше( X, М),
встав( Д2, X, НД2а, Мб, НД2б).
встав( в3( Д1, М2, Д2, М3, Д3), Х, в3( НД1, М2, Д2, М3, Д3) :-
больше( М2, X),
встав( Д1, X, НД1).
встав( в3( Д1, М2, Д2, М3, Д3), X,
в2( НД1а, Мб, НД1б), М2, в2( Д2, М3, Д3) ) :-
больше( М2, X),
встав( Д1, X, НД1а, Мб, НД1б).
встав( в3( Д1, М2, Д2, М3, Д3), X,
в3( Д1, М2, НД2, М3, Д3) ) :-
больше( X, М2), больше( М3, X),
встав( Д2, X, НД2).
встав( в3( Д1, М2, Д2, М3, Д3), X,
в2( Д1, М2, НД2а), Мб, в2( НД2б, М3, Д3) ) :-
больше( X, М2), больше( М3, X),
встав( Д2, X, НД2а, Мб, НД2б).
встав( в3( Д1, М2, Д2, М3, Д3), X,
в3( Д1, М2, Д2, М3, НД3) ) :-
больше( X, М3),
встав( Д3, X, НД3).
встав( в3( Д1, М2, Д2, М3, Д3), X,
в2( Д1, М2, Д2), М3, в2( НД3а, Мб, НД3б) ) :-
больше( X, М3),
встав( Д3, X, НД3а, Мб, НД3б).