Nové výhodné předplatné namísto kreditů je tu! Více informací. Upravili jsme také naše provozní podmínky.
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Lekce 4 - Optimalizace fronty v jazyce C

V minulé lekci, Implementace fronty v jazyce C, jsme implementovali jednoduchou frontu v jazyce C.

Naše implementace fronty je málo výkonná. Funkce add() a peek_tail() jsou v pořádku, protože pracují s hlavou fronty, na kterou máme uložený ukazatel. Ale ve funkcích take() a peek_head() musíme procházet celou frontu od začátku do konce. To při tisících položek může trvat dost dlouho. Proto naši implementaci vylepšíme. Zaveďme i druhý ukazatel na ocas fronty.

Úprava struktur

Prvně provedeme změnu ve strukturách, které kolekci představují.

Struktura QUEUE

Protože teď si tedy budeme držet 2 ukazatele, udělejme si na ně strukturu, která bude frontu nyní reprezentovat:

struct QUEUE
{
    struct ITEM* first;
    struct ITEM* last;
};

Struktura ITEM

Abychom se od ocasu dostali na předchozí prvky, musíme je


 

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

Před koupí tohoto článku je třeba koupit předchozí díl

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

Co od nás v dalších lekcích dostaneš?
  • Přístup k jednotlivým lekcím dle způsobu pořízení.
  • 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:

V tutoriálu optimalizujeme naši implementaci fronty v jazyce C pomocí obousměrných spojů a vytvořením další struktury.
Článek pro vás napsal Daniel Martinko
Avatar
Aktivity