Lekce 3 - Implementace fronty v jazyce C
V minulé lekci, Implementace zásobníku v jazyce C, jsme si ukázali, jak udělat zásobník bez použití globální proměnné.
Fronta (anglicky queue) je kolekce, jinak nazývaná také FIFO. To je podle anglického First In First Out, tedy první přišel, první odešel. Funguje přesně jako fronta u pokladny v obchodě (pokud jsou zákazníci slušní). Postavíme se do fronty a až na nás přijde řada, tak zaplatíme. Princip je tedy podobný, jako u zásobníku, jen se odebírá na konci fronty ("u pokladny") a ne na začátku.
Protože se na frontu můžeme dívat jak z pohledu zákazníka, tak z pohledu pokladní, pojďme si ujasnit, kde bude začátek a kde konec. V článku se nám bude do fronty zařazovat u začátku (hlavy, anglicky head nebo header) a prvky se budou odebírat od konce, ocasu (anglicky tail).
Funkce fronty
Frontě vytvoříme podobné funkce jako měl zásobník:
add()
(někdy takéenqueue()
, přidej) - přidá na začátek fronty položku typuITEM
obsahující zadané číslo typuint
take()
(někdy takédequeue()
, odeber) - odebere z konce fronty položku typuITEM
peek_head()
(viz na položku, která je na řadě) - vrátí položku fronty, která je zrovna na řadě (z našeho pohledu tedy na konci fronty), ale položku z fronty neodstraňujepeek_tail()
(viz na poslední přidanou položku) - vrátí poslední položku fronty (z našeho pohledu na začátku), ale položku z fronty neodstraňujeprint_collection()
(vytiskni frontu) - vypíše obsah fronty od začátku do konce
Implementace funkcí
Poučili jsme se se zásobníkem, takže
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
Tutoriál popisuje, co je to kolekce fronta a jak implementovat dynamickou frontu v jazyce C. Vysvětluje základní funkce fronty add(), take() a další.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.