Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
80 % bodů zdarma na online výuku díky naší Letní akci!

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

Prémiový článek

Prémiový článek

Na itnetwork.cz se nachází největší a nejucelenější česká databáze s výukovými články, jejímž cílem je umožnit kvalitní vzdělání v oblasti IT úplně každému. Měsíčně zobrazíme k milionu článků a sklidíme desítky děkovných emailů, kde nám sdělujete, že jsme vám pomohli k lepšímu zaměstnání nebo vzdělání.

Ačkoli se snažíme držet většinu obsahu úplně zadarmo, udržovat síť v provozu a aktuální stojí obrovské úsilí. Proto je nějaký obsah, jako cvičení nebo odbornější články, přístupný pouze za body. Nebojte, nestojí to skoro nic :)

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

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

Koupit články a funkce postupně a po jednom 80 bodů
Koupit všechny aktuálně dostupné články v sekci se všemi funkcemi za exkluzivní cenu 68 bodů
Na svém účtu máš aktuálně 0 bodů
Koupí tohoto výhodného balíčku získáš přístup ke všem 10 článkům s kontrolou a certifikací a ještě navíc ušetříš 30 Kč. Nabídka je omezená pouze pro první články z kurzu a obsahuje exkluzivní slevu 15%.
68 bodů získáš za přidání svého článku na síť nebo odpovídá 200 Kč 170 Kč

Pozor, pokud si koupíš pouze tento článek, ztratíš nárok na speciální slevu 15% na balíček všech článků.

Pro přístup k článku potřebuješ 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č

Koupí článku k němu získáš neomezený přístup a to napořád. Posuneš své znalosti zas kousek dopředu a zároveň nám pomůžeš udržovat celý projekt při životě a pomáhat vám tak k lepší budoucnosti.

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

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

Dobít body můžeš okamžitě např.:

Kartou SMS Převodem
Kartou SMS Převodem
Článek pro vás napsal Daniel Martinko
Avatar
Aktivity (4)