Ako implementovať frontu pomocou dvoch zásobníkov

Autor: Laura McKinney
Dátum Stvorenia: 3 Apríl 2021
Dátum Aktualizácie: 18 November 2024
Anonim
Ako implementovať frontu pomocou dvoch zásobníkov - Články
Ako implementovať frontu pomocou dvoch zásobníkov - Články

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)

    Dva zásobníky sa rovnajú riadku

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


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

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


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

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

Náhrady zemiakového škrobu

Roger Morrison

November 2024

Príprava vývarov, omáčok, pudingov a polievok i vyžaduje zahuťovadlo. Zemiakový škrob je kvelou voľbou pre bezlepkovú diétu a poča Veľkej noci pre Židov. Čato je však nev...

Ľudia, ktorí pijú kávu, i pravdepodobne niekedy omylom zafarbia oblečenie, najmä ak a ráno ponáhľajú. Aj keď rozlievanie kávy na tmavé oblečenie zvyčajne n...

Náš Výber