Знать структуру данных Queue и ее операции.
Вы знаете, как работает система бронирования билетов? Ответ прост, в основном, он использует внутреннюю структуру данных очереди для постановки пользователей в очередь для бронирования билетов. В этой статье мы увидим структуру данных очереди и ее операции.
Я уже рассмотрел все алгоритмы сортировки и поиска. Вы можете найти их здесь.
Queue
– это Linear Data Structure
, который следует определенному порядку выполнения операций.
Заказ First In First Out (FIFO)
. Примером очереди является билетная касса, где человек, который пришел первым, получает билет первым, а последний стоящий человек получает билет последним.
Мы можем выполнять следующие операции с очередью:
- Добавление элемента в
end/rear
очереди называетсяEnqueue
. - Удалить элемент из
front
очереди с именемDequeue
.
Операции с очередью:
В основном с очередью можно выполнять две операции:
Enqueue
: Добавление элемента в конец или конец очереди.Dequeue
: Удаление элемента из начала очереди.
Есть несколько других операций, которые используются для реализации очереди:
IsEmpty
: Проверьте, пуста ли очередь.IsFull
: Проверьте, заполнена ли очередь.Peek
: получить значение переднего элемента очереди, не удаляя его.
Давайте посмотрим, как работает очередь:
Для реализации Queue используются двухуказатели FRONT
и REAR
.
FRONT
: этот указатель указывает на первый элемент очереди.REAR
: этот указатель указывает на последний элемент очереди.
Обратите внимание, что изначально для
FRONT
иREAR
задано значение-1
.
Операция постановки в очередь:
- проверить заполнена ли очередь
- для первого элемента установите значение FRONT равным 0
- увеличить индекс REAR на 1
- добавить новый элемент в позицию, указанную REAR
Операция удаления из очереди:
- проверить, пуста ли очередь
- вернуть значение, указанное FRONT
- увеличьте передний индекс на 1
- Когда в очереди нет элементов, сбросьте значения FRONT и REAR на
-1
. (т.е. после удаления последнего элемента в очереди).
Визуализация очереди:
Реализация очереди:
Вывод:
The Queue is Empty!!! The element 10 added. ---------Queue content is : ----------- 10 0 0 --------------------------------------- The element 20 added. ---------Queue content is : ----------- 10 20 0 --------------------------------------- The element 30 added. ---------Queue content is : ----------- 10 20 30 --------------------------------------- The Queue is Full!!! The item 10 removed. ---------Queue content is : ----------- 0 20 30 --------------------------------------- The item 20 removed. ---------Queue content is : ----------- 0 0 30 --------------------------------------- The item 30 removed. ---------Queue content is : ----------- 0 0 0 --------------------------------------- The Queue is Empty!!!
Анализ временной сложности:
Обе операции enQueue и deQueue выполняются в одном операторе. Эти операции занимают постоянное количество времени. Следовательно, временная сложность этих операций будет O(1).
Приложения:
- Очереди используются в алгоритмах планирования заданий/дисков в операционных системах.
- Операционная система использует очереди для (поставления в очередь сообщений, запросов ввода-вывода, движений мыши и т. д.).
Спасибо, что прочитали эту статью. Я надеюсь, что вы нашли эту статью полезной. Если да, то хлопните в ладоши, и вы можете прочитать другие статьи о структурах данных и алгоритмах, перечисленные ниже.