Jedným z typov dátových štruktúr, ktoré sa dnes v programovaní aplikácií široko používajú, je zásobník. Jeho zvláštnosťou je princíp organizovania prvkov, pri ktorom je ich pridanie a odstránenie možné iba jeden po druhom a iba prostredníctvom „vrcholu“, teda podľa princípu LIFO. Ale niekedy je potrebné vyčistiť celý stoh naraz.
Nevyhnutné
- - textový editor alebo IDE;
- - prekladač z použitého programovacieho jazyka.
Inštrukcie
Krok 1
Použite metódy na objekty zásobníka, ktoré sú špeciálne určené na vyčistenie zásobníka. Sú prítomné vo väčšine zodpovedajúcich tried rôznych knižníc a rámcov. Napríklad trieda. NET Stack má metódu Clear. Príklad jeho aplikácie v C # môže vyzerať takto:
Stack oStack = nový Stack (); // vytvorí objekt zásobníka
oStack. Push ("000"); // naplniť zásobník
oStack. Push ("111");
oStack. Clear (); // vymaže zásobník
Krok 2
Na čistenie možno použiť aj metódy zmeny počtu prvkov tried kontajnerov, na ktorých je často postavená funkčnosť tried stohovania. Musíte iba znížiť aktuálny počet prvkov na nulu. Napríklad trieda šablón Qt QStack dedí z triedy šablón QVector, ktorá má metódu zmeny veľkosti. Príklad jeho použitia môže byť tento:
QStack oStack; // deklarácia objektu zásobníka
pre (int i = 0; i <10; i ++) oStack.push (i); // naplniť zásobník
oStack.resize (0); // vymaže zásobník
Krok 3
Vyčistenie objektu zásobníka sa dá zvyčajne vykonať pomocou operátora priradenia, ktorý je často implementovaný v zodpovedajúcich triedach. Za týmto účelom musí byť objektu zásobníka, ktorý sa má vyčistiť, priradený dočasný objekt vytvorený predvoleným konštruktorom. Napríklad šablónová trieda zásobníka C ++ Standard Library, ktorá je adaptérom pre triedy šablón kontajnerov, nemá metódy na svojvoľnú zmenu počtu alebo odstránenie všetkých prvkov. Môžete to vyčistiť takto:
std:: stack <int, std:: list> oStack; // deklarácia objektu zásobníka
pre (int i = 0; i <10; i ++) oStack.push (i); // naplniť zásobník
oStack = std:: stack
Krok 4
Vymažte objekt zásobníka tak, že zavoláte konštruktor kopírovania pomocou operátora new s argumentom objektu vytvoreným predvoleným konštruktorom:
std:: stack <int, std:: list> oStack; // deklarácia objektu zásobníka
pre (int i = 0; i <10; i ++) oStack.push (i); // naplniť zásobník
nový std:: zásobník
Krok 5
Zásobník je možné vyčistiť postupným načítaním všetkých prvkov pomocou vhodných metód:
std:: stack <int, std:: list> oStack; // deklarácia objektu zásobníka
pre (int i = 0; i <10; i ++) oStack.push (i); // naplniť zásobník
while (! oStack.empty ()) oStack.pop (); // vymaže zásobník
Tento prístup má však časovú zložitosť, ktorá lineárne závisí od počtu prvkov v zásobníku. Preto jeho použitie nie je racionálne.