HALLOWEEN JE TADY: Získej 66 % extra kreditů zdarma při nákupu od 1199 kreditů s promo kódem NEBOJSEIT66. Zjisti více:
NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:

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.

Omezená nabídka: Nauč se vše a ušetři

Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh za exkluzivní cenu 300 Kč
Aktuální stav konta 0 Kč
Koupí tohoto výhodného balíčku získáš přístup ke všem 17 článkům (17 lekcí) tohoto kurzu s kontrolou a certifikací a ještě navíc ušetříš 76 Kč. Nabídka je časově omezená a platí pro všechny lekce v kurzu. Nakup teď a získej limitovanou 20% slevu.

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