Jedna od vrsta struktura podataka koja se danas široko koristi u programiranju aplikacija je stek. Njegova je osobitost princip organiziranja elemenata, u kojem je njihovo dodavanje i uklanjanje moguće samo jedan po jedan i samo kroz "vrh", odnosno prema LIFO principu. Ali ponekad je potrebno očistiti cijeli stog odjednom.
Potrebno
- - uređivač teksta ili IDE;
- - prevodilac sa korištenog programskog jezika.
Instrukcije
Korak 1
Koristite metode na objektima stoga koji su posebno dizajnirani za čišćenje steka. Prisutni su u većini odgovarajućih klasa različitih biblioteka i okvira. Na primjer, klasa. NET Stack ima Clear metodu. Primjer njegove primjene u C # mogao bi izgledati ovako:
Stack oStack = novi Stack (); // kreiramo objekt steka
oStack. Push ("000"); // popunjava stog
oStack. Push ("111");
oStack. Clear (); // očistiti stog
Korak 2
Metode za promjenu broja elemenata klasa spremnika, na kojima se često gradi funkcionalnost klasa stogova, također se mogu koristiti za čišćenje. Samo trebate smanjiti trenutni broj elemenata na nulu. Na primjer, klasa Qt predloška QStack nasljeđuje od klase predloška QVector, koja ima metodu promjene veličine. Primjer njegove upotrebe mogao bi biti ovakav:
QStack oStack; // deklaracija stack objekta
za (int i = 0; i <10; i ++) oStack.push (i); // popunjava stog
oStack.resize (0); // očistiti stog
Korak 3
Čišćenje predmeta steka obično se može obaviti putem operatora dodjele, što se često implementira u odgovarajuće klase. Da bi se to učinilo, objektu steka koji se briše mora se dodijeliti privremeni objekt kreiran zadanim konstruktorom. Na primjer, predložena klasa steka standardne biblioteke C ++, koja je adapter za klase s predloškom spremnika, nema metode za proizvoljnu promjenu broja ili uklanjanje svih elemenata. Možete to očistiti ovako:
std:: stack <int, std:: list> oStack; // deklaracija stack objekta
za (int i = 0; i <10; i ++) oStack.push (i); // popunjava stog
oStack = std:: stack
Korak 4
Očistite objekt steka pozivanjem konstruktora kopiranja koristeći novi operator s argumentom objekta kreiranim zadanim konstruktorom:
std:: stack <int, std:: list> oStack; // deklaracija stack objekta
za (int i = 0; i <10; i ++) oStack.push (i); // popunjava stog
novi std:: stog
Korak 5
Stog se može očistiti sekvencijalnim dohvatanjem svih elemenata pomoću odgovarajućih metoda:
std:: stack <int, std:: list> oStack; // deklaracija stack objekta
za (int i = 0; i <10; i ++) oStack.push (i); // popunjava stog
while (! oStack.empty ()) oStack.pop (); // očistiti stek
Međutim, ovaj pristup ima vremensku složenost koja linearno ovisi o broju elemenata u stogu. Stoga njegova upotreba nije racionalna.