Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
23.03.2015
Размер:
395.78 Кб
Скачать

4.8.Упорядоченные списки

В качестве последнего примера рассмотрим списки, в которых элементы отсортированы по доступу. Спецификация такого типа представлена на рис. 4.16.Упорядоченные списки —изменяемые и параметризуемы по типу, который должен быть полностью упо­рядочен его операциями Itи equal.Итак, упорядоченные спискиolistне содержат дублирующих друг друга элементов.

olist == data type [t: type] is create, addel, remel, isJn, empty, least Requires tимеет операции

It, equal: proctype (t, t) returns (bool), которые определяют упорядочение t Описание

Упорядоченные списки olist —изменяемые списки элементов. Операции addel и remelмодифицируют списки. Каждый элемент упорядоченного списка отли­чается от остальных (как определяется t$equal).Операция leastвозвращает наи­меньший элемент olist(как определяется t$lt). Операцииcreate == proc ( ) returns (olist [t])

effectsВозвращает новый, пустой список.addel = proc (s: olist [t], х: t) requires ~ is.in (s, х) modifies s cHectsВставляет х в s. remel = proc (s: olist [t], х: t) requires isJn (s, х) modifies s effectsУдаляет х из s. isJn = proc (s: olist [t], х:) returns (bool)

effectsВозвращает значение true,если sсодержит элемент равный х (ис­пользуется t$equal),в противном случае возвращает значение false. empty == proc (s: olist [t]) returns (bool)

effectsВозвращает значение true,если sне содержит элементов, и зна­чение false —в противном случае.least = proc (s: olist [t]) returns (t) requires^ empty (s). effectsВозвращает элемент eиз s,такой, что в sне существует элемента,

меньшего е (как определяется t$lt). end olist Рис. 4.16.Спецификация типа данных olist,

Соседние файлы в папке POSIBNIK