Вставить элемент в конец списка на Prolog

Программирование Помощь с решением задач на Prolog Задачи на списки Вставить элемент в конец списка на Prolog

Помечено: , ,

В этой теме 1 ответ, 2 участника, последнее обновление  Васильев Владимир Сергеевич 2 года/лет, 1 месяц назад.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Автор
    Сообщения
  • #2794

    questioner
    Участник

    Нужно написать на языке Prolog предикат, выполняющий вставку элемента в конец списка. Со вставкой в начало проблем нет:
    insert_head(Head, Tail, [Head|Tail]).
    Но вставить подобным образом в конец не получается.

    #2795

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

    На рисунке показана блок-схема алгоритма, выполняющего вставку узла в конец списка. Реализация алгоритма на языке Prolog:

    insert_back_element([], Element, [Element]):-!.
    insert_back_element([Head|Tail], Element, [Head|TailWithElement]):-
      insert_back_element(Tail, Element, TailWithElement).

    Вложения:
    Вы должны войти для просмотра вложений.
Просмотр 2 сообщений - с 1 по 2 (из 2 всего)

Для ответа в этой теме необходимо авторизоваться.