Добавить элемент в упорядоченный список - Prolog

Узнай цену своей работы

Формулировка задачи:

Нужен предикат добавления элемента в упорядоченный список. Помогите, пожалуйста.

Решение задачи: «Добавить элемент в упорядоченный список»

textual
Листинг программы
add_ordered(X,[],[X]).
add_ordered(X,[A,B|T],[A,X,B|T]):-A<=X,X<=B.
add_ordered(X,[H|T],[H|T1]):-add_ordered(X,T,T1).

Объяснение кода листинга программы

Код выполняет функцию add_ordered, которая добавляет элемент X в упорядоченный список.

  1. В первом случае, когда список пустой, функция возвращает X в качестве единственного элемента списка.
  2. Во втором случае, когда список не пустой, функция проверяет, находится ли X между A и B. Если это так, то X добавляется в середину списка, между A и B. Если нет, то функция рекурсивно вызывается для списка T, исключая первый элемент, и добавляется в начало списка.
  3. В третьем случае, когда список имеет элемент H, функция рекурсивно вызывается для списка T и создается новый список T1, который является результатом вызова функции. Используется следующая постановка задачи - добавить элемент X в упорядоченный список, где X меньше или равен каждому элементу списка.

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы