Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Представление списков. Список - это простая структура данных, широко используемая в нечисловом программировании




Список - это простая структура данных, широко используемая в нечисловом программировании. Список - это последовательность, составленная из произвольного числа элементов, например энн, теннис, том, лыжи. На Прологе это записывается так:

[ энн, теннис, том, лыжи ]

Каким образом можно представить список в виде стандартного прологовского объекта? Мы должны рассмотреть два случая: пустой список и не пустой список. В первом случае список записывается как атом [ ]. Во втором случае список следует рассматривать как структуру состоящую из двух частей:

(1) первый элемент, называемый головой списка;

(2) остальная часть списка, называемая хвостом.

Например, для списка

[ энн, теннис, том, лыжи ]

энн - это голова, а хвостом является список

[ теннис, том, лыжи ]

Подытожим:

  • Список - это структура данных, которая либо пуста, либо состоит из двух частей: головы и хвоста. Хвост в свою очередь сам является списком.
  • Список рассматривается в Прологе как специальный частный случай двоичного дерева. Для повышения наглядности программ в Прологе предусматриваются специальные средства для списковой нотации, позволяющие представлять списки в виде
    [ Элемент1, Элемент2,... ]
    или
    [ Голова | Хвост ]
    или
    [ Элемент1, Элемент2,... | Остальные]

Некоторые операции над списками

Списки можно применять для представления множеств, хотя и существует некоторое различие между этими понятиями: порядок элементов множества не существенен, в то время как для списка этот порядок имеет значение; кроме того, один н тот же объект может встретиться в списке несколько раз. Однако наиболее часто используемые операции над списками аналогичны операциям над множествами. Среди них

  • проверка, является ли некоторый объект элементом списка, что соответствует проверке объекта на принадлежность множеству;
  • конкатенация (сцепление) двух списков, что соответствует объединению множеств;
  • добавление нового объекта в список или удаление некоторого объекта из него.

Составление программы для отношения принадлежности может быть основано на следующих соображениях:

· (1) Х есть голова L, либо

· (2) Х принадлежит хвосту L.

· Это можно записать в виде двух предложений, первое из которых есть простой факт, а второе - правило:

· принадлежит(X, [X | Хвост ]).

· принадлежит (X, [Голова | Хвост ]):-
принадлежит(X, Хвост).

Сцепление (конкатенация)

Для сцепления списков мы определим отношение

Конк(L1, L2, L3)

Здесь L1 и L2 - два списка, a L3 - список, получаемый при их сцеплении.

На прологе это можно записать следующим образом:

конк([X | L1, L2, [X | L3]):-
конк(L1, L2, L3).





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 333 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Настоящая ответственность бывает только личной. © Фазиль Искандер
==> читать все изречения...

2312 - | 2040 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.