Программирование на языке ПРОЛОГ для искуственного интеллекта




Двоично - троичные справочники - часть 4


        доб23( Дер, X, в2( Д1, М, Д2) ) :-
                встав( Дер, X, Д1, М, Д2).

Отношение встав устроено более сложным образом, поскольку ему приходится иметь дело со многими случаями, а именно вставление в пустое дерево, в дерево, состоящее из одного листа, и в деревья типов  в2  и  в3.   Возникают также дополнительные подслучаи, так как новый элемент можно вставить в первое, либо во второе, либо в третье поддерево. В связи с этим мы определим встав как набор правил таким образом, чтобы каждое предложение процедуры встав имело дело с одним из этих случаев. На рис. 10.5 показаны некоторые из возможных случаев. На Пролог они транслируются следующим образом:

Случай а
        встав( в2( Д1, М, Д2), X, в2( НД1, М, Д2) ) :-
                больше( М, X),
                % М больше, чем Х
                встав( Д1, X, НД1).

Случай b
        встав( в2( Д1, M, Д2), X, в3( НД1а, Мб, НД1б, M, Д2) ) :-
                больше( М, X),
                встав( Д1, X, НД1а, Мб, НД1б).

Случай с
        встав( в3( Д1, М2, Д2, М3, Д3), X, в2( НД1а, Мб, НД1б), М2, в2(Д2, М3, Д3) ) :-
                больше( М2, X),
                встав( Д1, X, НД1а, Мб, НД1б).

fig10_5.gif (5066 bytes)

Рис. 10. 5.  Некоторые из случаев работы отношения встав.
(a)  встав( в2( Д1, М, Д2), X, в2( НД1, М, Д2) );



Содержание  Назад  Вперед