Очередь Python:пример FIFO, LIFO
Что такое очередь Python?
Очередь — это контейнер, в котором хранятся данные. Данные, введенные первыми, будут удалены первыми, поэтому очередь также называется «первым пришел — первым обслужен» (FIFO). Очередь имеет два конца спереди и сзади. Элементы вводятся сзади и удаляются с лицевой стороны.
Из этого руководства по Python вы узнаете:
- Что такое очередь Python?
- Как работает очередь Python?
- Типы очереди в Python
- Установка очереди Python
- Методы, доступные внутри классов Queue и LifoQueue
- Пример очереди в порядке очереди
- Пример очереди "последний вошел - первый вышел"
- Добавить более 1 элемента в очередь
- Очередь сортировки
- Реверсивная очередь
Как работает очередь Python?
Очередь можно легко сравнить с реальным примером:очередь людей, стоящих в очереди у кассы, человек, стоящий первым, получит билет первым, за ним следует следующий человек и так далее. Та же логика применима и к структуре данных очереди.
Вот схематическое изображение очереди:
Сзади представляет точку, в которой элементы вставляются в очередь. В этом примере значением для этого является 7.
Фронт представляет точку, в которой элементы из очереди будут удалены. Если вы удалите элемент из очереди, первым элементом, который вы получите, будет 1, как показано на рисунке.
Элемент 1 был первым, который был вставлен в очередь, и при удалении он первым вышел из очереди. Следовательно, очередь называется FIRST IN FIRST OUT (FIFO)
В очереди элементы удаляются по порядку и не могут быть удалены между ними. Вы просто не можете удалить элемент 5 из очереди случайным образом, для этого вам придется удалить все элементы до 5. Элементы в очереди будут удалены в том порядке, в котором они были вставлены.
Типы очередей в Python
В основном в Python есть два типа очередей:
- Очередь «первым пришел — первым вышел». В этом случае элемент, который идет первым, выходит первым.
Для работы с FIFO необходимо вызвать Queue() класс из модуля очереди.
- Очередь «последним пришел – первым ушел»:здесь элемент, введенный последним, будет отправлен первым.
Для работы с LIFO необходимо вызвать LifoQueue() класс из модуля очереди.
Установка очереди Python
Работать с очередью в python очень просто. Вот шаги, которые необходимо выполнить, чтобы использовать очередь в своем коде.
Шаг 1) Вам просто нужно импортировать модуль очереди, как показано ниже:
06
Модуль доступен по умолчанию с python, и вам не нужна дополнительная установка, чтобы начать работать с очередью. Существует два типа очереди:FIFO (первым поступил, первым обслужен) и LIFO (последним пришел, первым вышел).
Шаг 2) Для работы с очередью FIFO вызовите класс Queue, используя импортированный модуль очереди, как показано ниже:
15пре>Шаг 3) Для работы с очередью LIFO вызовите класс LifoQueue(), как показано ниже:
23Методы, доступные внутри классов Queue и LifoQueue
Ниже перечислены важные методы, доступные внутри классов Queue и LifoQueue:
- поместить(элемент): Это поместит элемент в очередь.
- получить(): Это вернет вам элемент из очереди.
- пусто(): Он вернет true, если очередь пуста, и false, если элементы присутствуют.
- qsize(): возвращает размер очереди.
- полный(): возвращает true, если очередь заполнена, иначе false.
Пример очереди в порядке очереди
В случае "первым пришел - первым вышел" элемент, который идет первым, будет первым и выведенным.
Добавить элемент в очередь
Давайте поработаем над примером добавления элемента в очередь. Чтобы начать работу с очередью, сначала импортируйте очередь модуля, как показано в примере ниже.
Чтобы добавить элемент, вы можете использовать метод put(), как показано в примере:
37
По умолчанию размер очереди бесконечен, и вы можете добавить в нее любое количество элементов. Если вы хотите определить размер очереди, это можно сделать следующим образом
45
Вывод:
53
Теперь размер очереди равен 5, и она не займет более 5 элементов, а метод q1.full() вернет true. Добавление дополнительных элементов не приведет к дальнейшему выполнению кода.
Удалить элемент из очереди
Чтобы удалить элемент из очереди, вы можете использовать метод get(). Этот метод разрешает элементы из очереди при вызове.
В следующем примере показано, как удалить элемент из очереди.
66
Вывод:
78
Пример очереди «последним пришел – первым вышел»
В случае последнего в первой исходящей очереди элемент, введенный последним, будет отправлен первым.
Для работы с LIFO, т. е. последним в очереди, нам нужно импортировать модуль очереди и использовать метод LifoQueue().
Добавить элемент в очередь
Здесь мы поймем, как добавить элемент в очередь LIFO.
84
Вы должны использовать метод put() в LifoQueue, как показано в приведенном выше примере.
Удалить элемент из очереди
Чтобы удалить элемент из очереди LIFO, вы можете использовать метод get() .
94
Вывод:
102
Добавить более 1 элемента в очередь
В приведенных выше примерах мы видели, как добавить один элемент и удалить элемент для очереди FIFO и LIFO. Теперь мы увидим, как добавить более одного элемента, а также удалить его.
Добавить элемент в очередь FIFO
119
Удалить элемент из очереди FIFO
124
Вывод:
139
Добавить элемент в очередь LIFO
141
Удалить элемент из очереди LIFO
154
Вывод:
160
Очередь сортировки
В следующем примере показана сортировка в очереди. Для сортировки используется пузырьковая сортировка.
174
Вывод:
181
Реверсивная очередь
Чтобы изменить очередь, вы можете использовать другую очередь и рекурсию.
В следующем примере показано, как перевернуть очередь.
Пример:
192
Вывод:
207
Обзор:
- Очередь — это контейнер, в котором хранятся данные. Существует два типа очереди:FIFO и LIFO.
- Для FIFO (первым поступил – первым обслужен) элемент, который идет первым, будет первым, кто выйдет из очереди.
- Для LIFO (очередь "последним вошел - первым вышел") элемент, введенный последним, будет отправлен первым.
- Элемент в очередь добавляется с помощью метода put(item).
- Для удаления элемента используется метод get().
Python
- Операторы Python
- Словарь Питона
- Функция Python String strip() с ПРИМЕРОМ
- Длина строки Python | Пример метода len()
- Учебное пособие по доходности в Python:генератор и пример доходности и возврата
- Счетчик Python в коллекциях с примером
- Функция Enumerate() в Python:цикл, кортеж, строка (пример)
- Python time.sleep():добавьте задержку в свой код (пример)
- Индекс списка Python() с примером
- FIFO против LIFO:различия, преимущества и недостатки, приложения и многое другое