Køer er normalt frustrerende i det virkelige liv, men i et computerprogram kan de løse mange problemer. Find ud af, hvad du kan gøre med en kø og hvordan.

Køen er en alsidig datastruktur, som du kan bruge i en række forskellige indstillinger. Fra CPU-planlægningsalgoritmer til webapps, det findes overalt.

Hvis du stræber efter at være Python-udvikler, er det afgørende, at du kommer op i fart med denne enkle, men allestedsnærværende datastruktur. Lad os lære, hvad kødatastrukturen er, og hvordan man implementerer en i Python.

Hvad er kødatastrukturen?

Billedkredit: Wikipedia

En kø er en lineær datastruktur, der følger First-In-First-Out (FIFO) princippet. Det betyder, at når du henter et element fra en kø, får du det, du tilføjede før de andre.

Her er de grundlæggende handlinger, du kan udføre på en kø:

  • Enqueue: Tilføj elementer til køen.
  • Dequeue: Fjern elementer fra køen.
  • Udskriv: Udskriv elementerne i køen.
  • Foran: Få elementet foran i køen.
  • Bagside: Hent elementet bagerst i køen.

Du kan implementere kødatastrukturen i Python på to måder: ved at bruge enten en listecontainer eller en dobbeltendet kø fra samlingsmodulet. Til dette program skal du bruge en liste.

instagram viewer

Sådan implementeres kødatastrukturen i Python

Du implementerer en kø ved hjælp af listebeholderen i Python. Start med at erklære en tom liste med navnet .

kø = []

Nu skal du acceptere brugerinput og udføre den handling, som brugeren har indtastet. Udskriv først en linje, der beder brugeren om at indtaste en kommando. Vent derefter på brugerinput og gem det i kommando variabel.

Ved brug af Python if-udsagn, udfør handlingen svarende til den kommando, brugeren indtaster. Hvis de indtaster en ikke-genkendt kommando, skal du afslutte programmet. Sæt disse operationer i en uendelighed mens loop for at sikre, at programmet fortsætter med at køre, medmindre de afslutter.

mensRigtigt:
kommando = input("Hvad vil du lave? ")

hvis kommando == "kø":
# kode
elif kommando == "afkø":
# kode
andet:
pause

print (kø)

Nu du har behandlet programmets hovedkontrolflow, kan du definere kodeblokken for hver operation. Skriv først koden til kø. Enqueue betyder at indsætte et element i slutningen af ​​køen. Du kan gøre dette ved at bruge Tilføj() metode:

hviskommando == "kø":
kø = int(input("Indtast elementet til Enqueue: "))

Afkø

Skriv nu koden for at sætte et element i kø fra køen. Du kan gøre dette ved at bruge pop-metoden med 0 som indeks. Hvorfor? Som du lærte tidligere, følger en kø FIFO-rækkefølge, så det første element, du sætter i kø, bør være det første element, du sætter i kø.

hvis kommando == "afkø":
kø.pop(0)

Foran

Fortsæt med at skrive koden for at udskrive elementet foran i køen. Udskriv blot det 0. indeks i køen.

hvis kommando == "foran":
print (kø[0])

Bag

Meget ligesom koden for den forreste operation, for at udføre den bageste operation udskrive elementet ved det sidste indeks. For at gøre dette skal du først bruge len()-funktionen i køen og derefter trække 1 fra den for at finde det sidste indeks.

hvis kommando == "bag":
print (kø[len (kø) - 1])

Print

Skriv til sidst koden til printkommandoen. Du skal blot udskrive listen ved hjælp af Pythons standard Print() fungere.

hvis kommando == "Print":
print (kø)

Hvis den tekst, brugeren indtaster, ikke matcher en understøttet kommando, skal du bryde ud af while-løkken ved hjælp af en break-sætning. Den endelige kode skal se sådan ud:

kø = []

mensRigtigt:
kommando = input("Hvad vil du gøre?\n")

hvis kommando == "kø":
enqueue = int (input("Indtast elementet til Enqueue: "))
queue.append (enqueue)
elif kommando == "afkø":
kø.pop(0)
elif kommando == "Print":
print (kø)
elif kommando == "foran":
print (kø[0])
elif kommando == "bag":
print (kø[len (kø)-1])
andet:
pause

print (kø)

Kør programmet for at prøve de forskellige køoperationer. Brug udskriftskommandoen til at se, hvordan de påvirker din kø. Du har nu oprettet din egen simple køimplementering i Python.

Køen er blot en af ​​mange nyttige datastrukturer

Konceptet med en datastruktur er et vigtigt koncept, som enhver datalogistuderende skal mestre. Sandsynligvis har du måske allerede lært eller arbejdet med nogle grundlæggende datastrukturer såsom arrays eller lister.

Interviewere har også en tendens til at stille spørgsmål relateret til datastrukturer, så hvis du ønsker at tage et højtbetalt programmeringsjob, bliver du nødt til at opfriske din viden om datastrukturer.