Wachtrijen zijn in het echte leven meestal frustrerend, maar in een computerprogramma kunnen ze veel problemen oplossen. Ontdek wat u kunt doen met een wachtrij en hoe.
De wachtrij is een veelzijdige gegevensstructuur die u in verschillende omgevingen kunt gebruiken. Van CPU-planningsalgoritmen tot web-apps, het is overal te vinden.
Als je ernaar streeft een Python-ontwikkelaar te worden, is het van vitaal belang dat je op de hoogte raakt van deze eenvoudige maar alomtegenwoordige datastructuur. Laten we eens kijken wat de wachtrijgegevensstructuur is en hoe we er een in Python kunnen implementeren.
Wat is de wachtrijgegevensstructuur?
Een wachtrij is een lineaire gegevensstructuur, die het First-In-First-Out (FIFO)-principe volgt. Dit betekent dat wanneer u een element uit een wachtrij haalt, u het element krijgt dat u vóór de anderen hebt toegevoegd.
Dit zijn de basisbewerkingen die u op een wachtrij kunt uitvoeren:
- Enqueue: voeg elementen toe aan de wachtrij.
- Dequeue: verwijder elementen uit de wachtrij.
- Afdrukken: druk de elementen in de wachtrij af.
- Front: Verkrijg het element vooraan in de wachtrij.
- Achter: Verkrijg het element aan de achterkant van de wachtrij.
U kunt de wachtrijgegevensstructuur op twee manieren in Python implementeren: met behulp van een lijstcontainer of een dubbele wachtrij uit de verzamelingsmodule. Voor dit programma gebruik je een lijst.
Hoe de wachtrijgegevensstructuur in Python te implementeren
U implementeert een wachtrij met behulp van de lijstcontainer in Python. Begin met het declareren van een lege lijst met de naam wachtrij.
wachtrij = []
Nu moet u gebruikersinvoer accepteren en de bewerking uitvoeren die door de gebruiker is ingevoerd. Druk eerst een regel af waarin de gebruiker wordt gevraagd een opdracht in te voeren. Wacht vervolgens op gebruikersinvoer en sla deze op in het commando variabel.
Gebruik makend van Python if-instructies, voer de bewerking uit die overeenkomt met de opdracht die de gebruiker invoert. Als ze een niet-herkende opdracht invoeren, sluit u het programma af. Zet deze operaties in een oneindige herhalingslus om ervoor te zorgen dat het programma blijft draaien, tenzij ze stoppen.
terwijlWAAR:
commando = invoer("Wat wil je doen? ")als commando == "wachtrij":
#code
elif commando == "wachtrij":
#code
anders:
pauze
afdrukken (wachtrij)
Wachtrij
Nu u de belangrijkste besturingsstroom van het programma hebt behandeld, kunt u het codeblok voor elke bewerking definiëren. Schrijf eerst de code voor enqueue. Enqueue betekent het invoegen van een element aan het einde van de wachtrij. U kunt dit doen met behulp van de toevoegen() methode:
alscommando == "wachtrij":
in de rij zetten = int(invoer("Voer het element in om in de wachtrij te plaatsen: "))
Wachtrij
Schrijf nu de code om een element uit de wachtrij te halen. U kunt dit doen met behulp van de pop-methode met 0 als index. Waarom? Zoals je eerder hebt geleerd, volgt een wachtrij de FIFO-volgorde, dus het eerste element dat je in de wachtrij zet, moet het eerste element zijn dat je uit de wachtrij haalt.
als commando == "wachtrij":
wachtrij.pop(0)
Voorkant
Ga verder en schrijf de code om het element vooraan in de wachtrij af te drukken. Print gewoon de 0e index van de wachtrij uit.
als commando == "voorkant":
afdrukken (wachtrij[0])
Achterkant
Net zoals de code voor de voorbewerking, drukt u voor het uitvoeren van de achterbewerking het element af bij de laatste index. Gebruik hiervoor eerst de functie len() op de wachtrij en trek er vervolgens 1 van af om de laatste index te vinden.
als commando == "achterkant":
afdrukken (wachtrij[len (wachtrij) - 1])
Afdrukken
Schrijf ten slotte de code voor het afdrukcommando. Druk de lijst eenvoudig af met behulp van de standaard van Python afdrukken() functie.
als commando == "afdrukken":
afdrukken (wachtrij)
Als de tekst die de gebruiker invoert niet overeenkomt met een ondersteund commando, onderbreek dan de while-lus met een break-statement. De uiteindelijke code zou er als volgt uit moeten zien:
wachtrij = []
terwijlWAAR:
commando = invoer("Wat wil je doen?\n")als commando == "wachtrij":
in wachtrij plaatsen = int (invoer("Voer het element in om in de wachtrij te plaatsen: "))
wachtrij.append (wachtrij)
elif commando == "wachtrij":
wachtrij.pop(0)
elif commando == "afdrukken":
afdrukken (wachtrij)
elif commando == "voorkant":
afdrukken (wachtrij[0])
elif commando == "achterkant":
afdrukken (wachtrij[len (wachtrij)-1])
anders:
pauze
afdrukken (wachtrij)
Voer het programma uit om de verschillende wachtrijbewerkingen uit te proberen. Gebruik de afdrukopdracht om te zien hoe ze uw wachtrij beïnvloeden. U hebt nu uw eigen eenvoudige wachtrij-implementatie in Python gemaakt.
De wachtrij is slechts een van de vele nuttige gegevensstructuren
Het concept van een gegevensstructuur is essentieel dat elke student informatica moet beheersen. De kans is groot dat u al enkele basisgegevensstructuren zoals arrays of lijsten hebt geleerd of ermee hebt gewerkt.
Interviewers hebben ook de neiging om vragen te stellen met betrekking tot datastructuren, dus als u op zoek bent naar een goedbetaalde programmeertaak, moet u uw kennis van datastructuren opfrissen.