больше( А, 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б).

Рис. 10. 6.  Вставление элемента в 2-3 справочник. В этой

программе предусмотрено, что попытка повторного

вставления элемента терпит неудачу.

Программа для вставления нового элемента в 2-3 справочник показана полностью на рис. 10.6. На рис. 10.7 показана программа вывода на печать 2-3 деревьев.

Наша программа иногда выполняет лишние возвраты. Так, если встав с тремя аргументами терпит неудачу, то вызывается процедура встав с пятью аргументами, которая часть работы делает повторно. Можно устранить источник неэффективности, если, например, переопределить встав как

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ОБРАНЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату