
Спецификация типа данных Упорядоченный по возрастанию список целых чисел.
Для описания ADT на логическом уровне (уровень пользователя) используется формат, который включает заголовок с именем ADT, описание объектов типа данных и список операций. Для каждой операции определяются входные (Вход) значения, предоставляемые клиентом, (Предусловия), требования к исходным данным, в случае истинности которых операция может быть выполнена, и процесс обработки данных (Процесс), который выполняется операцией. После выполнения операции определяются выходные значения (Выход), которые возвращаются клиенту, и постусловия (Постусловия), указывающие на любые изменения данных.
ADT TOrderedList
Данные
Списки значений типа T (смотри вариант задания), упорядоченные в соответствии с вариантом задания - это изменяемые неограниченные упорядоченные (в соответствии с вариантом задания) последовательности значений типа T. Они изменяются операциями: Опустошить, Вставить, Удалить.
Операции
Таблица 3. Операции на упорядоченном списке.
СоздатьСписок |
|
Вход: |
Нет. |
Предусловия: |
Имеется в наличии свободная динамическая память в куче. |
Процесс: |
Создаёт динамическую переменную типа TOrderedList – пустой список. |
Выход: |
Нет. |
Постусловия: |
Нет. |
|
|
СписокВСтроку |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Формирует строку, содержащую строковое представление значений элементов списка. |
Выход: |
Строка. |
Постусловия: |
Нет. |
|
|
Элементов |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Подсчитывает и возвращает число элементов списка. |
Выход: |
Целое число. |
Постусловия: |
Нет. |
|
|
Элемент |
|
Вход: |
J - индекс элемента списка. |
Предусловия: |
Список не пуст и индекс не выходит из допустимого диапазона. |
Процесс: |
Обеспечивает доступ к элементу списка по индексу J для чтения так, что если изменять J от 0 до количества элементов в списке -1, то можно просмотреть все элементы списка. |
Выход: |
Элемент списка. |
Постусловия: |
Список не модифицируется. |
|
|
Опустошить |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Удаляет все элементы из списка. |
Выход: |
Нет. |
Постусловия: |
Список - пуст. |
|
|
Вставить |
|
Вход: |
Е – значение типа T. |
Предусловия: |
Нет. |
Процесс: |
Добавляет E к элементам списка, сохраняя упорядоченность. |
Выход: |
Нет. |
Постусловия: |
Количество элементов списка увеличивается на 1. |
|
|
Найти |
для вариантов 1,2 |
Вход: |
K – значение типа T, которое необходимо найти в списке. |
Предусловия: |
Нет. |
Процесс: |
Просмотр списка для нахождения целого числа K. Если искомое число K в списке не найдено, возвращает -1; если найдено, возвращает индекс найденного элемента в списке. Элементы списка индексируются целыми числами, начиная с 0. |
Выход: |
Целое значение – индекс найденного элемента в списке, -1 – если элемент в списке отсутствует. |
Постусловия: |
Нет. |
|
|
Удалить |
для вариантов 1,2 |
Вход: |
Е – значение типа T. |
Предусловия: |
Список не пуст. |
Процесс: |
Удаляет из списка элемент E, если такой имеется в списке. |
Выход: |
Нет. |
Постусловия: |
Если Е найден в списке, количество элементов списка уменьшается на 1. |
|
|
Пуст |
|
Вход: |
Нет. |
Предусловия: |
Нет. |
Процесс: |
Определяет, пуст ли список. Возвращает значение True, если список пуст, False –в противном случае. |
Выход: |
Булевское значение |
Постусловия: |
Нет. |
end TOrderedList