Köer är vanligtvis frustrerande i verkligheten, men i ett datorprogram kan de lösa många problem. Ta reda på vad du kan göra med en kö och hur.

Kön är en mångsidig datastruktur som du kan använda i en mängd olika inställningar. Från CPU-schemaläggningsalgoritmer till webbappar, det finns överallt.

Om du strävar efter att vara en Python-utvecklare är det viktigt att du kommer igång med denna enkla men allestädes närvarande datastruktur. Låt oss lära oss vad ködatastrukturen är och hur man implementerar en i Python.

Vad är ködatastrukturen?

Bildkredit: Wikipedia

En kö är en linjär datastruktur som följer First-In-First-Out-principen (FIFO). Det betyder att när du hämtar ett element från en kö får du det du lagt till före de andra.

Här är de grundläggande operationerna som du kan utföra på en kö:

  • Enqueue: Lägg till element i kön.
  • Avkö: Ta bort element från kön.
  • Skriv ut: Skriv ut elementen i kön.
  • Fram: Få elementet längst fram i kön.
  • Rear: Hämta elementet längst bak i kön.

Du kan implementera ködatastrukturen i Python på två sätt: med antingen en listbehållare eller en dubbeländad kö från samlingsmodulen. För det här programmet använder du en lista.

instagram viewer

Hur man implementerar ködatastrukturen i Python

Du kommer att implementera en kö med hjälp av listbehållaren i Python. Börja med att deklarera en tom lista med namnet .

kö = []

Nu måste du acceptera användarinmatning och utföra operationen som användaren angett. Skriv först ut en rad som uppmanar användaren att ange ett kommando. Vänta sedan på användarinmatning och lagra den i kommando variabel.

Använder sig av Python if-satser, utför operationen som motsvarar kommandot som användaren anger. Om de matar in ett okänt kommando, avsluta programmet. Lägg dessa operationer i en oändlighet medan loop för att säkerställa att programmet fortsätter att köras om de inte avslutas.

medanSann:
kommando = input("Vad vill du göra? ")

om kommando == "köa":
# kod
elif kommando == "avkö":
# kod
annan:
ha sönder

utskriftskö)

Nu har du tagit itu med programmets huvudkontrollflöde, du kan definiera kodblocket för varje operation. Skriv först koden för enqueue. Enqueue betyder att infoga ett element i slutet av kön. Du kan göra detta med hjälp av bifoga() metod:

omkommando == "köa":
kö = int(inmatning("Ange elementet till Enqueue: "))

Avkö

Skriv nu koden för att ta bort ett element från kön. Du kan göra detta med popmetoden med 0 som index. Varför? Som du lärde dig tidigare följer en kö FIFO-ordning, så det första elementet du ställer i kö bör vara det första elementet du ställer i kö.

om kommando == "avkö":
queue.pop(0)

Främre

Gå vidare, skriv koden för att skriva ut elementet längst fram i kön. Skriv helt enkelt ut det 0:e indexet i kön.

om kommando == "främre":
utskriftskö[0])

Bak

Ungefär som koden för den främre operationen, för att utföra den bakre operationen skriv ut elementet vid det sista indexet. För att göra detta använd först len()-funktionen i kön och subtrahera sedan 1 från den för att hitta det sista indexet.

om kommando == "bak":
print (kö[len (kö) - 1])

Skriva ut

Skriv slutligen koden för utskriftskommandot. Skriv bara ut listan med Pythons standard skriva ut() fungera.

om kommando == "skriva ut":
utskriftskö)

Om texten som användaren anger inte matchar ett kommando som stöds, bryt ut ur while-loopen med en break-sats. Den slutliga koden ska se ut så här:

kö = []

medanSann:
kommando = input("Vad vill du göra?\n")

om kommando == "köa":
enqueue = int (ingång("Ange elementet till Enqueue: "))
queue.append (enqueue)
elif kommando == "avkö":
queue.pop(0)
elif kommando == "skriva ut":
utskriftskö)
elif kommando == "främre":
utskriftskö[0])
elif kommando == "bak":
print (kö[len (kö)-1])
annan:
ha sönder

utskriftskö)

Kör programmet för att prova de olika köoperationerna. Använd utskriftskommandot för att se hur de påverkar din kö. Du har nu skapat din egen enkla köimplementering i Python.

Kön är bara en av många användbara datastrukturer

Konceptet med en datastruktur är en viktig sådan som varje datavetenskapsstudent måste behärska. Chansen är stor att du kanske redan har lärt dig eller arbetat med några grundläggande datastrukturer som arrayer eller listor.

Intervjuare tenderar också att ställa frågor relaterade till datastrukturer, så om du vill ha ett högbetalt programmeringsjobb kommer du att behöva fräscha upp dina kunskaper om datastrukturer.