Kako Očistiti Hrpu

Sadržaj:

Kako Očistiti Hrpu
Kako Očistiti Hrpu

Video: Kako Očistiti Hrpu

Video: Kako Očistiti Hrpu
Video: Savjeti kako očistiti garnituru za sjedenje! STOP PRLJAVŠTINI 2024, Novembar
Anonim

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.

Kako očistiti hrpu
Kako očistiti hrpu

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(); // očistiti sto

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(oStack); // očistiti sto

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.

Preporučuje se: