Fronty jsou v reálném životě obvykle frustrující, ale v počítačovém programu mohou vyřešit mnoho problémů. Zjistěte, co můžete s frontou dělat a jak.

Fronta je všestranná datová struktura, kterou můžete použít v různých nastaveních. Od plánovacích algoritmů CPU až po webové aplikace, najdete je všude.

Pokud se snažíte být vývojářem Pythonu, je důležité, abyste se s touto jednoduchou, ale všudypřítomnou datovou strukturou zdokonalili. Pojďme se naučit, jaká je datová struktura fronty a jak ji implementovat v Pythonu.

Co je to datová struktura fronty?

Kredit obrázku: Wikipedie

Fronta je lineární datová struktura, která se řídí principem First-In-First-Out (FIFO). To znamená, že když načtete prvek z fronty, dostanete ten, který jste přidali před ostatními.

Zde jsou základní operace, které můžete provádět ve frontě:

  • Zařadit do fronty: Přidejte prvky do fronty.
  • Dequeue: Odstraňte prvky z fronty.
  • Tisk: Tisk prvků ve frontě.
  • Přední: Dostaňte prvek do přední části fronty.
  • Rear: Získejte prvek v zadní části fronty.
instagram viewer

Strukturu dat fronty můžete v Pythonu implementovat dvěma způsoby: buď pomocí kontejneru seznamu, nebo dvojité fronty z modulu kolekcí. Pro tento program použijete seznam.

Jak implementovat datovou strukturu fronty v Pythonu

Budete implementovat frontu pomocí kontejneru seznamu v Pythonu. Začněte tím, že deklarujete prázdný seznam se jménem fronta.

fronta = []

Nyní musíte přijmout uživatelský vstup a provést operaci zadanou uživatelem. Nejprve vytiskněte řádek vyzývající uživatele k zadání příkazu. Poté počkejte na vstup uživatele a uložte jej do příkaz variabilní.

Použitím Příkazy Python if, proveďte operaci odpovídající příkazu, který uživatel zadá. Pokud zadají nerozpoznaný příkaz, ukončete program. Vložte tyto operace do nekonečna zatímco smyčka aby bylo zajištěno, že program poběží, dokud se neukončí.

zatímcoSkutečný:
příkaz = vstup("Co chceš dělat? ")

-li příkaz == "zařadit do fronty":
# kód
elif příkaz == "dequeue":
# kód
jiný:
přestávka

tisková fronta)

Zařadit do fronty

Nyní jste se zabývali hlavním řídicím tokem programu, můžete definovat blok kódu pro každou operaci. Nejprve napište kód pro enqueue. Zařadit do fronty znamená vložit prvek na konec fronty. Můžete to udělat pomocí připojit() metoda:

-lipříkaz == "zařadit do fronty":
fronta = int(vstup("Zadejte prvek do fronty: "))

Dequeue

Nyní napište kód pro vyřazení prvku z fronty. Můžete to udělat pomocí metody pop s 0 jako indexem. Proč? Jak jste se dozvěděli dříve, fronta se řídí pořadím FIFO, takže první prvek, který zařadíte do fronty, by měl být prvním prvkem, který vyřadíte.

-li příkaz == "dequeue":
fronta.pop(0)

Přední

Pokračujte a napište kód pro tisk prvku na začátek fronty. Jednoduše vytiskněte 0. index fronty.

-li příkaz == "přední":
tisková fronta[0])

Zadní

Podobně jako kód pro přední operaci, pro provedení zadní operace vytiskněte prvek na posledním indexu. Chcete-li to provést, nejprve použijte funkci len() ve frontě a poté od ní odečtěte 1, abyste našli poslední index.

-li příkaz == "zadní":
tisknout (fronta[len (fronta) - 1])

Tisk

Nakonec napište kód příkazu print. Jednoduše vytiskněte seznam pomocí standardu Pythonu tisk() funkce.

-li příkaz == "tisk":
tisková fronta)

Pokud text, který uživatel zadá, neodpovídá podporovanému příkazu, opusťte smyčku while pomocí příkazu break. Konečný kód by měl vypadat takto:

fronta = []

zatímcoSkutečný:
příkaz = vstup("Co chceš dělat?\n")

-li příkaz == "zařadit do fronty":
enqueue = int (vstup("Zadejte prvek do fronty: "))
queue.append (řada)
elif příkaz == "dequeue":
fronta.pop(0)
elif příkaz == "tisk":
tisková fronta)
elif příkaz == "přední":
tisková fronta[0])
elif příkaz == "zadní":
tisknout (fronta[len (fronta)-1])
jiný:
přestávka

tisková fronta)

Spusťte program a vyzkoušejte různé operace s frontou. Pomocí příkazu print zjistěte, jak ovlivňují vaši frontu. Nyní jste vytvořili svou vlastní jednoduchou implementaci fronty v Pythonu.

Fronta je jen jednou z mnoha užitečných datových struktur

Koncept datové struktury je životně důležitý, který musí zvládnout každý student informatiky. Je pravděpodobné, že jste se již naučili nebo pracovali s některými základními datovými strukturami, jako jsou pole nebo seznamy.

Tazatelé mají také tendenci klást otázky související s datovými strukturami, takže pokud hledáte vysoce placenou programátorskou práci, budete si muset oprášit své znalosti datových struktur.