
- •1.Введение
- •2.Архитектура машинной памяти
- •3.Адресация основной памяти
- •4.Три уровня представления данных.
- •5.Внутренняя структура записи
- •6.Операции над структурами данных и типы структур данных.
- •7.Последовательное представление данных в памяти эвм.
- •8.Связанное представление данных в памяти эвм.
- •9.Способ хранения, основанный на преобразовании ключа записи в ее адрес.
- •10.Массивы
- •11.Стек.
- •12.Очередь.
- •13.Таблица
- •14.Основные понятия сортировки.
- •15.Основные принципы сортировки
- •16.Сортировка методом выбора
- •17.Сортировка методом обмена (метод пузырька)
- •18.Сортировка методом вставок
- •19.Сортировка методом подсчета (в отсутствии и при наличии одинаковых ключей)
- •20.Сортировка методом Шелла
- •21.Внешняя сортировка.
- •22. Основные принципы информационного поиска
- •23.Последовательный поиск
- •24.Ускоренный последовательный поиск
- •25.Двоичный поиск
- •26.Блочный поиск
- •27.Поиск по двоичному дереву
12.Очередь.
Очередь – линейная структура данных переменного размера ограниченным доступом. Доступ к элементам очереди происходит по указателю начала очереди и указателю конца очереди. Чтение начинается с головы или начала очереди. УН указывает на тот элемент, который будет первым читаться. Прочитанный элемент считается исключенным из очереди. Включение элемента возможно только в хвост или в конец очереди. УК устанавливается на свободную ячейку следующего за последним элементом очереди, в эту ячейку включается новый элемент. Данные в такой структуре обрабатываются по принципу «первый пришел, первый ушел». FIFO – First In First Out. В памяти очередь можно хранить как последовательное, так и как связанное представление. При последовательном представлении под очередь, как и под стек, резервируется блок памяти, внутри которого очередь может расти и сокращаться.
Новый элемент записывается в ячейку на которую установлен УК, после выполнения операции записи УК изменяется на единицу и перемещается на следующую свободную ячейку . Когда в результате включения новых элементов УК достигнет последней ячейки зарезервированного блока в нее записывается элемент и очередь оказывается переполненной.
Читается
из очереди элемент, на который указывает
УН, после чтения УН изменяется на единицу
передвигаясь к концу очереди и
устанавливается на следующий элемент
очереди. Прочитанный элемент оказывается
исключенным из очереди. Когда УН
совпадет с УК очередь окажется пуста.
После выполнения операции чтения в начале очереди появляются свободные ячейки в которые можно записывать новый элемент, поэтому если в процессе записи УК достиг конца зарезервированного блока его можно перебросить на начало очереди и продолжать запись в освободившейся ячейке. Когда УК после его переброски догонит УН очередь окажется переполненной. УН в процессе чтения также может быть переброшен, если после переброски УК выполнялись операции записи в очередь. Если после переброски обоих указателей оказалось что УН догнал УК, то УН стал равен УК, то очередь пуста.
Возможны другие способы организации очереди. Очередь может иметь неизменным один из указателей, тогда при выполнении операций записи, чтения элементы потребуется перемещать.
Зафиксируем УН
При неизменном УН после операции чтения вся очередь вместе с УК передвигается на одну ячейку к началу очереди, прочитанный элемент стирается. Запись по УК. Очередь не передвигается, движется лишь УК после записи.
При
неизменном УК очередь вместе с УН
перемещается после выполнения каждой
операции записи, в результате этого
освобождается ячейка, на которую
постоянно установлен УК. Чтение
выполняется по УН.
При связанном представлении очереди не надо предварительно резервировать память. Записи, образующие очередь размещаются в любых свободных ячейках памяти и связываются между собой указателями. Структура очереди используется для решения различных задач, в которых обработка данных должна выполняться в порядке их поступления. Структура очереди широко используется в ОС ЭВМ. Типичным примером использования очереди является задача управления заданиями в вычислительных системах с разделением времени. В таких системах много пользователей одновременно работает с общим ресурсом, например с центральным процессором. Программы пользователей, ожидающие выполнения образуют очередь, выбранный способ организации очереди и установленные дисциплины ее обслуживания во многом определяют эффективность функционирования такой системы.