Fronty sú v reálnom živote zvyčajne frustrujúce, ale v počítačovom programe dokážu vyriešiť veľa problémov. Zistite, čo môžete robiť s radom a ako.

Front je všestranná dátová štruktúra, ktorú môžete použiť v rôznych nastaveniach. Od algoritmov plánovania CPU až po webové aplikácie sa nachádza všade.

Ak sa snažíte byť vývojárom Pythonu, je dôležité, aby ste sa s touto jednoduchou, ale všadeprítomnou dátovou štruktúrou zorientovali. Poďme sa naučiť, čo je dátová štruktúra frontu a ako ju implementovať v Pythone.

Čo je to dátová štruktúra frontu?

Kredit za obrázok: Wikipedia

Front je lineárna dátová štruktúra, ktorá sa riadi princípom First-In-First-Out (FIFO). To znamená, že keď načítate prvok z frontu, dostanete ten, ktorý ste pridali pred ostatnými.

Tu sú základné operácie, ktoré môžete vykonať vo fronte:

  • Zaradiť: Pridajte prvky do frontu.
  • Dequeue: Odstráňte prvky z frontu.
  • Tlačiť: Vytlačí prvky vo fronte.
  • Front: Získajte prvok v prednej časti frontu.
  • Zadná časť: Získajte prvok v zadnej časti frontu.

Dátovú štruktúru frontu môžete implementovať v Pythone dvoma spôsobmi: buď pomocou kontajnera so zoznamom alebo dvojitého frontu z modulu kolekcií. Pre tento program použijete zoznam.

Ako implementovať dátovú štruktúru frontu v Pythone

Budete implementovať front pomocou kontajnera zoznamu v Pythone. Začnite deklarovaním prázdneho zoznamu s názvom fronte.

front = []

Teraz musíte prijať vstup používateľa a vykonať operáciu zadanú používateľom. Najprv vytlačte riadok s výzvou na zadanie príkazu. Potom počkajte na vstup používateľa a uložte ho do príkaz premenlivý.

Použitím Príkazy Python if, vykonajte operáciu zodpovedajúcu príkazu, ktorý používateľ zadá. Ak zadajú nerozpoznaný príkaz, ukončite program. Vložte tieto operácie do nekonečna pričom slučka aby sa zabezpečilo, že program bude pokračovať, pokiaľ sa neskončí.

zatiaľ čoPravda:
príkaz = vstup("Čo chceš robiť? ")

ak príkaz == "zaradiť":
# kód
elif príkaz == "dequeue":
# kód
inak:
prestávka

tlačiť (poradie)

Zaradiť do radu

Teraz, keď ste sa zaoberali hlavným riadiacim tokom programu, môžete definovať blok kódu pre každú operáciu. Najprv napíšte kód pre enqueue. Zaradiť do radu znamená vložiť prvok na koniec frontu. Môžete to urobiť pomocou pripojiť () metóda:

akpríkaz == "zaradiť":
rad = int(vstup("Zadajte prvok do poradia: "))

Dequeue

Teraz napíšte kód na vyradenie prvku z frontu. Môžete to urobiť pomocou metódy pop s 0 ako indexom. prečo? Ako ste sa už skôr dozvedeli, rad sa riadi poradím FIFO, takže prvý prvok, ktorý zaradíte do radu, by mal byť prvým prvkom, ktorý vyradíte.

ak príkaz == "dequeue":
queue.pop(0)

Predné

Pokračujte a napíšte kód na vytlačenie prvku v prednej časti frontu. Jednoducho vytlačte 0. index frontu.

ak príkaz == "vpredu":
vytlačiť (front [0])

Zadné

Podobne ako kód pre prednú operáciu, na vykonanie zadnej operácie vytlačte prvok na poslednom indexe. Najprv použite funkciu len() vo fronte a potom od nej odčítajte 1, aby ste našli posledný index.

ak príkaz == "zadné":
vytlačiť (front [len (front) - 1])

Tlačiť

Nakoniec napíšte kód príkazu print. Jednoducho vytlačte zoznam pomocou štandardu Pythonu tlačiť () funkciu.

ak príkaz == "tlač":
tlačiť (poradie)

Ak sa text, ktorý používateľ zadá, nezhoduje s podporovaným príkazom, opustite cyklus while pomocou príkazu break. Konečný kód by mal vyzerať takto:

front = []

zatiaľ čoPravda:
príkaz = vstup("Čo chceš robiť?\n")

ak príkaz == "zaradiť":
enqueue = int (vstup("Zadajte prvok do poradia: "))
queue.append (zaradiť)
elif príkaz == "dequeue":
queue.pop(0)
elif príkaz == "tlač":
tlačiť (poradie)
elif príkaz == "vpredu":
vytlačiť (front [0])
elif príkaz == "zadné":
vytlačiť (front [len (front)-1])
inak:
prestávka

tlačiť (poradie)

Spustite program a vyskúšajte rôzne operácie s frontami. Ak chcete zistiť, ako ovplyvňujú váš front, použite príkaz print. Teraz ste vytvorili svoju vlastnú jednoduchú implementáciu frontu v Pythone.

Front je len jednou z mnohých užitočných dátových štruktúr

Koncept dátovej štruktúry je životne dôležitý, ktorý musí ovládať každý študent informatiky. Je pravdepodobné, že ste sa už naučili alebo pracovali s niektorými základnými dátovými štruktúrami, ako sú polia alebo zoznamy.

Anketári tiež zvyknú klásť otázky súvisiace s dátovými štruktúrami, takže ak chcete získať vysoko platenú programátorskú prácu, budete si musieť oprášiť svoje znalosti dátových štruktúr.