Deque - Trabalhando com LIFO e FIFO
This commit is contained in:
80
aula198.py
Normal file
80
aula198.py
Normal file
@@ -0,0 +1,80 @@
|
||||
# Deque - Trabalhando com LIFO e FIFO
|
||||
# deque - Double-ended queue
|
||||
#
|
||||
# Lifo e fifo
|
||||
# pilha e fila
|
||||
|
||||
# LIFO (Last In First Out)
|
||||
# Pilha (stack)
|
||||
# Significa que o último item a entrar será o primeiro a sair (list)
|
||||
# Artigo:
|
||||
# https://www.otaviomiranda.com.br/2020/pilhas-em-python-com-listas-stack/
|
||||
# Vídeo:
|
||||
# https://youtu.be/svWVHEihyNI
|
||||
# Para tirar itens do final: O(1) Tempo constante
|
||||
# Para tirar itens do início: O(n) Tempo Linear
|
||||
|
||||
from collections import deque
|
||||
|
||||
lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
|
||||
# ✅ Legal (LIFO com lista)
|
||||
# 0 1 2 3 4 5 6 7 8 9
|
||||
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
lista.append(10)
|
||||
# 0 1 2 3 4 5 6 7 8 9 10
|
||||
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||
lista.append(11)
|
||||
# 0 1 2 3 4 5 6 7 8 9 10, 11
|
||||
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
||||
ultimo_removido = lista.pop()
|
||||
# 0 1 2 3 4 5 6 7 8 9 10
|
||||
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||
print('Último: ', ultimo_removido)
|
||||
print('Lista:', lista)
|
||||
# 0 1 2 3 4 5 6 7 8 9 10
|
||||
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||
print()
|
||||
|
||||
|
||||
lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
|
||||
# 🚫 Ruim (FIFO com lista)
|
||||
# 0 1 2 3 4 5 6 7 8 9
|
||||
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
lista.insert(0, 10)
|
||||
# 0 1 2 3 4 5 6 7 8 9, 10
|
||||
# [10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
lista.insert(0, 11)
|
||||
# 0 1 2 3 4 5 6 7 8 9, 10 11
|
||||
# [11, 10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
primeiro_removido = lista.pop(0) # 11
|
||||
# 0 1 2 3 4 5 6 7 8 9, 10
|
||||
# [10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
print('Primeiro: ', primeiro_removido) # 11
|
||||
print('Lista:', lista) # [10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
print()
|
||||
|
||||
# FIFO (First In First Out)
|
||||
# Filas (queue)
|
||||
# Significa que o primeiro item a entrar será o primeiro a sair (deque)
|
||||
# Artigo:
|
||||
# https://www.otaviomiranda.com.br/2020/filas-em-python-com-deque-queue/
|
||||
# Vídeo:
|
||||
# https://youtu.be/RHb-8hXs3HE
|
||||
# Para tirar itens do final: O(1) Tempo constante
|
||||
# Para tirar itens do início: O(1) Tempo constante
|
||||
|
||||
# ✅ Legal (FIFO com deque)
|
||||
|
||||
fila_correta: deque[int] = deque()
|
||||
fila_correta.append(3) # Adiciona no final
|
||||
fila_correta.append(4) # Adiciona no final
|
||||
fila_correta.append(5) # Adiciona no final
|
||||
fila_correta.appendleft(2) # Adiciona no começo
|
||||
fila_correta.appendleft(1) # Adiciona no começo
|
||||
fila_correta.appendleft(0) # Adiciona no começo
|
||||
print(fila_correta) # deque([0, 1, 2, 3, 4, 5])
|
||||
fila_correta.pop() # 5
|
||||
fila_correta.popleft() # 0
|
||||
print(fila_correta) # deque([1, 2, 3, 4])
|
||||
Reference in New Issue
Block a user