Filas

Filas
mail@pastecode.io avatar
unknown
python
7 months ago
1.1 kB
3
Indexable
Never
class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        """Retorna True se a fila estiver vazia, caso contrário, retorna False."""
        return len(self.items) == 0

    def enqueue(self, item):
        """Adiciona um item ao final da fila."""
        self.items.append(item)

    def dequeue(self):
        """Remove e retorna o item do início da fila."""
        if self.is_empty():
            raise IndexError("Dequeue from an empty queue")
        return self.items.pop(0)

    def size(self):
        """Retorna o número de itens na fila."""
        return len(self.items)

    def peek(self):
        """Retorna o item do início da fila sem removê-lo."""
        if self.is_empty():
            raise IndexError("Peek from an empty queue")
        return self.items[0]

# Testando a implementação
if __name__ == "__main__":
    q = Queue()
    q.enqueue(1)
    q.enqueue(2)
    q.enqueue(3)
    q.enqueue(100)
    
    print(q.peek())  # 1
    print(q.dequeue())  # 1
    print(q.dequeue())  # 2
    print(q.size())  # 1