Obsah
Fronta je dynamická dátová štruktúra, z ktorej môžete pristupovať k údajom v procese „first-come, first-out“. Zásobník je dynamická dátová štruktúra, z ktorej môžete pristupovať k údajom v procese "last-in, first-out". Ak implementujete zásobník, bude k dispozícii iba posledná položka, ktorú zadáte. Ak chcete pristupovať k údajom, ktoré sú jej základom (prvá položka, ktorú vložíte), budete s ňou zaobchádzať ako s frontom. K tomu musíte vykonať druhú haldu.
inštrukcia
Implementácia fronty pomocou dvoch zásobníkov je jednoduchá (Ablestock.com/AbleStock.com/Getty Images)-
V textovom editore napíšte kód na implementáciu zásobníka podľa postupov a funkcií dostupných v programovacom jazyku, ktorý chcete použiť. Zavolajte tento zásobník Stack_Entry. Dajte dáta do Stack_Entry (mnoho programovacích jazykov použite príkaz "push" na pridanie dát). Napríklad spustením príkazu "push" v Stack_Entry zadajte údaje v nasledujúcom poradí: "A", "B" a "C". "A" je prvý vstup a je na spodku zásobníka. Ak chcete pristupovať k tejto prvej položke, spracovávate údaje ako front.
-
Napíšte kód na implementáciu druhého zásobníka podľa postupov a funkcií dostupných v programovacom jazyku, ktorý chcete použiť. Nazvite ho StackSafe (mnoho programovacích jazykov používa príkaz "pop" na odstránenie údajov zo zásobníka).
-
Odstráňte každú položku zo zásobníka Stack_Insert a umiestnite ich do režimu spánku. Vo všeobecnosti, odstránite položku Stack_Input a umiestnite ju do StackAid. Potom skontrolujte, či je Stack_Input prázdny. Ak nie je prázdny, odstráňte z položky Stack_Input ďalšiu položku a vložte ju do režimu spánku. Opakujte, kým nie je Stack_Input prázdny. V našom príklade odstránite "C" zo Stack_Input a vložíte ju do Stack_Aid. Uistite sa, že InputPilot je prázdny. Odstráňte "B" zo Stack_Input a nastavte ho na Stack_Aid. Uistite sa, že InputPilot je prázdny. Odstráňte "A" zo Stack_Input a nastavte ho na Stack_Aid. Uistite sa, že InputPilot je prázdny.
-
Keď je zásobník Stack_Path prázdny, položka, ktorá bola v základni Stack_Input ("A" v našom príklade) je teraz v hornej časti Stack_Aside. Odstráňte položku SleepSeat a zmenili ste zásobník na frontu. Vaša prvá položka v zásobníku je teraz prvou položkou, ktorá má byť vybratá (prvý v, prvý von, alebo prvý FIFO, prvý von).
Dva zásobníky sa rovnajú riadku
tipy
- Väčšina programovacích jazykov poskytuje funkcie na spracovanie údajov vo vektore, ako keby to bol front alebo zásobník. To znamená, že môžete pristupovať na poslednú a prvú pozíciu vektora bez ohľadu na to, z ktorého konca údaje zadávate. Ak sa vaše údaje nachádzajú vo vektore, nemusíte sa obávať, že k nim budete pristupovať ako ku fronte alebo ku zásobníku. Ak sú však vaše údaje v dynamickej halde a chcete s nimi zaobchádzať ako s frontom, mali by ste implementovať druhý zásobník.
Čo potrebujete
- Textový editor
- Prekladač alebo interpret pre niektorý programovací jazyk