Redovi su obično frustrirajući u stvarnom životu, ali u računalnim programima mogu riješiti mnoge probleme. Saznajte što možete učiniti s redom čekanja i kako.

Red je svestrana struktura podataka koju možete koristiti u različitim postavkama. Od algoritama za raspoređivanje CPU-a do web-aplikacija, nalazi se posvuda.

Ako nastojite biti programer za Python, od vitalne je važnosti da se upoznate s ovom jednostavnom, ali sveprisutnom strukturom podataka. Naučimo što je struktura podataka reda i kako je implementirati u Python.

Što je struktura podataka čekanja?

Kredit za sliku: Wikipedia

Red čekanja je linearna struktura podataka koja slijedi načelo prvi ušao prvi izašao (FIFO). To znači da ćete, kada dohvatite element iz reda čekanja, dobiti onaj koji ste dodali prije ostalih.

Evo osnovnih operacija koje možete izvesti na redu čekanja:

  • Stavi u red čekanja: Dodajte elemente u red čekanja.
  • Dequeue: Ukloni elemente iz reda čekanja.
  • Ispis: Ispis elemenata u redu čekanja.
  • Ispred: Dohvatite element na početku reda.
  • Stražnja strana: Uzmite element na začelju reda čekanja.
instagram viewer

Strukturu podataka reda čekanja u Pythonu možete implementirati na dva načina: koristeći ili spremnik popisa ili dvostruki kraj čekanja iz modula zbirki. Za ovaj program upotrijebit ćete popis.

Kako implementirati strukturu podataka čekanja u Pythonu

Implementirat ćete red čekanja pomoću spremnika popisa u Pythonu. Započnite deklariranjem praznog popisa s imenom red.

red = []

Sada trebate prihvatiti korisnički unos i izvršiti operaciju koju je unio korisnik. Najprije ispišite redak koji od korisnika traži da unese naredbu. Zatim pričekajte korisnički unos i pohranite ga u naredba varijabla.

Korištenje Python if naredbe, izvrši operaciju koja odgovara naredbi koju korisnik unese. Ako unesu neprepoznatu naredbu, zatvorite program. Stavite ove operacije unutar beskonačnog while petlja kako bi se osiguralo da program nastavi raditi osim ako se ne prekinu.

dokPravi:
naredba = unos("Što želiš raditi? ")

ako naredba == "u red":
# kod
elif naredba == "izbaci iz reda":
# kod
drugo:
pauza

ispis (red čekanja)

Stavi u red

Sada kada ste se pozabavili glavnim kontrolnim tokom programa, možete definirati blok koda za svaku operaciju. Prvo napišite kod za stavljanje u red čekanja. Stavljanje u red čekanja znači umetanje elementa na kraj reda čekanja. To možete učiniti pomoću dodati() metoda:

akonaredba == "u red":
staviti u red = int(ulazni("Unesite element za stavljanje u red čekanja: "))

Dequeue

Sada napišite kod za uklanjanje elementa iz reda čekanja. To možete učiniti koristeći pop metodu s 0 kao indeksom. Zašto? Kao što ste ranije naučili, red slijedi FIFO redoslijed, tako da bi prvi element koji stavite u red trebao biti prvi element koji deaktivirate.

ako naredba == "izbaci iz reda":
queue.pop(0)

Ispred

Idemo dalje, napišite kod za ispis elementa na početku reda čekanja. Jednostavno ispišite 0. indeks reda čekanja.

ako naredba == "ispred":
ispis (red[0])

Stražnji

Slično kao kod za prednju operaciju, za izvođenje stražnje operacije ispišite element na zadnjem indeksu. Da biste to učinili, prvo upotrijebite funkciju len() na redu čekanja, a zatim od njega oduzmite 1 da biste pronašli zadnji indeks.

ako naredba == "stražnji":
ispis (red[len (red) - 1])

Ispis

Na kraju napišite kod za naredbu print. Jednostavno ispišite popis koristeći Python standard ispis() funkcija.

ako naredba == "ispisati":
ispis (red čekanja)

Ako tekst koji korisnik unese ne odgovara podržanoj naredbi, izađite iz while petlje pomoću naredbe break. Konačni kod bi trebao izgledati ovako:

red = []

dokPravi:
naredba = unos("Što želite učiniti?\n")

ako naredba == "u red":
staviti u red = int (unos("Unesite element za stavljanje u red čekanja: "))
queue.append (dodaj u red)
elif naredba == "izbaci iz reda":
queue.pop(0)
elif naredba == "ispisati":
ispis (red čekanja)
elif naredba == "ispred":
ispis (red[0])
elif naredba == "stražnji":
ispis (red[len (red)-1])
drugo:
pauza

ispis (red čekanja)

Pokrenite program da isprobate razne operacije čekanja. Upotrijebite naredbu za ispis da vidite kako utječu na vaš red čekanja. Sada ste stvorili vlastitu jednostavnu implementaciju reda čekanja u Pythonu.

Red je samo jedna od mnogih korisnih struktura podataka

Koncept strukture podataka vitalan je koji svaki student informatike mora savladati. Vjerojatno ste već naučili ili radili s nekim osnovnim strukturama podataka kao što su nizovi ili popisi.

Anketari također obično postavljaju pitanja vezana uz strukture podataka, pa ako želite dobiti dobro plaćeni programerski posao, morat ćete obnoviti svoje znanje o strukturama podataka.