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

3.2. Организация данных – очередь. Простая очередь

Простая очередь представляет собой организацию данных, заключающуюся в том, что включение элементов в последовательность производится с одного конца этой последовательности, а исключение – с другого, – таким образом, доступ к элементам происходит по принципу FIFO (first in first out): первым пришел – первым вышел.

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

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

1. Представление простой очереди в виде списка

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

Описательные алгоритмы реализации операций над очередью.

1) Добавление элемента в очередь:

  • указатель вершины остается неизменным;

  • в ссылочное поле последнего элемента заносится адрес нового элемента;

  • указатель конца перемещается на новый элемент.

2) Удаление элемента из очереди:

  • удаляется первый элемент;

  • указатель вершины перемещается к следующему элементу.

2. Представление простой очереди в виде массива.

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

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

Дек (двусторонняя очередь)

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

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

Очереди с ограниченным входом и с ограниченным выходом

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

Причем дек с ограниченным входом может быть использован как простая очередь или как стек.

Очередь с ограниченным входом или с ограниченным выходом так же, как дек или простую очередь, может быть организована на основе линейного двунаправленного списка.

7

Соседние файлы в предмете Программирование на Pascal