class Queue:
    '''Klasse, die eine Queue mittels einer Liste implementiert'''

    def __init__(self):
        '''Erzeugt eine leere Warteschlange'''
        self.items = []
        self.size = 0

    def enqueue(self, item):
        '''Fügt item am Ende der Warteschlange ein'''
        self.items.append(item)

    def dequeue(self):
        '''Entfernt Objekt vom Anfang der Queue und gibt es zurück'''
        return self.items.pop(0)

# Der folgende Code zeigt, dass das Entfernen am Anfang der
# Liste viel mehr Zeit kostet als das Einfügen am Ende der Liste
from time import time

n = 10**5

q = Queue()
T1 = time() # 1. Zeitmessung 
for k in range(0, n): # Zahlen von 0 bis n-1 am Ende hinzufügen  ...
    q.enqueue(k)
T2 = time() # 2. Zeitmessung 
for k in range(0, n): # alle Elemente vom Anfang entfernen ...
    q.dequeue()
T3 = time()

print(f'Dauer fürs Einfügen: {round(T2-T1,3)}s')
print(f'Dauer fürs Entfernen: {round(T3-T2,3)}s')


    

    

    
        
        

        
