Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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.

Datová struktura fronta

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 typu ITEM obsahující zadané číslo typu int
  • take() (někdy také dequeue(), odeber) - odebere z konce fronty položku typu ITEM
  • 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ňuje
  • peek_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ňuje
  • print_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

Znalosti v hodnotě stovek tisíc získáš za pár korun

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

Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh za pouhých 375 Kč
Aktuální stav konta 0 Kč
Koupí tohoto balíčku získáš přístup ke všem 17 článkům (17 lekcí) tohoto kurzu.

Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • 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íť.

Článek pro vás napsal Daniel Martinko
Avatar
Aktivity