Hledáme fulltime PHP programátora do ITnetwork týmu - 100% homeoffice, 100% časově flexibilní #bezdeadlinu Mám zájem!
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 50% výuky zdarma!

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 lekce a funkce postupně a po jednom 150 bodů
Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh za exkluzivní cenu 128 bodů (318 Kč)
Na svém účtu máš aktuálně 0 bodů
Koupí tohoto výhodného balíčku získáš přístup ke všem 17 lekcím s kontrolou a certifikací a ještě navíc ušetříš 57 Kč. Nabídka je omezená pouze pro první lekce z kurzu a obsahuje exkluzivní slevu 15%.
128 bodů získáš za přidání svého článku na síť nebo odpovídá 374 Kč 318 Kč

Pozor, pokud si koupíš pouze tuto lekci, ztratíš nárok na speciální slevu 15% na balíček všech lekcí.

Koupit jen lekci 10 bodů
Na svém účtu máš aktuálně 0 bodů
10 bodů získáš za přidání svého článku na síť nebo odpovídá 25 Kč

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ší.

Body 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 (5)