Студопедия
Главная страница | Контакты | Случайная страница

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

Очереди

Читайте также:
  1. Вопрос: Алиментные обязательства алиментно-обязанных лиц второй очереди.
  2. Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
  3. Один из примеров - это получение растений петунии с разноцветными цветками. На очереди голубые розы с геном, контролирующим синтез голубого пигмента, клонированным из дельфиниума.
  4. ОЧЕРЕДИ
  5. Очереди наследников по закону
  6. Пример 5.4. Система массового обслуживания с отказами по ограничению количества мест в очереди
  7. Пример 5.5. Система массового обслуживания с отказами по ограничению количества мест в очереди

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

-очистить очередь (сделать структуру пустой);

-проверить на пустоту;

-добавить элемент в конец;

-взять элемент в начале;

-прочитать первый элемент;

-записать последний элемент.

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

Про очередь говорят, что она работает по принципу FIFO (First in – first out; первым пришел – первым ушел).

При хранении в массиве уже не хватит двух переменных, как этого было достаточно для стека. Можно обойтись тремя переменными. Безусловно, нужен массив для хранения содержимого очереди. Этот массив будет «свернут в кольцо», то есть элементом следующим за последним элементом массива будет считаться первый элемент массива. Помимо массива можно завести переменные для хранения начала и конца очереди. Но тут встает вопрос, как определить пустоту очереди и ее переполненность (когда все элементы массива заняты очередью, добавление становится невозможным – возникает переполнение). Очередь будет считаться пустой, когда индекс начала на единицу больше индекса конца, но то же самое будет и при очереди, заполнившей весь массив!!!

Для списочного хранения очереди потребуется еще один указатель – на конец очереди. Очередь будет храниться в виде двусвязного списка. Очередь из элементов 7 и 10 будет представлена так:

 

Деки

Дек – структура данных с двусторонним доступом, хранящая упорядоченное множество значений, для которой определены следующие операции:

-очистить дек (сделать структуру пустой);

-проверить на пустоту;

-добавить элемент в начало;

-добавить элемент в конец;

-взять элемент из начала;

-взять элемент из конца;

-прочитать первый элемент;

-прочитать последний элемент;

-записать первый элемент;

-записать последний элемент.

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

Наглядно дек можно представить в виде полки с книгами, которые можно доставать и помещать с двух сторон, но нельзя брать и ставить в середине полки.

11)Способы передачи переменных в с++(по значению,по ссылке,по указателю).




Дата добавления: 2015-01-05; просмотров: 112 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.285 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав