Een van die soorte datastrukture wat vandag baie gebruik word in toepassingsprogrammering, is die stapel. Die eienaardigheid daarvan is die beginsel van die organisering van elemente, waarin die toevoeging en verwydering slegs een op 'n slag moontlik is en slegs deur die "top", dit wil sê volgens die LIFO-beginsel. Maar soms is dit nodig om die hele stapel gelyktydig skoon te maak.
Nodig
- - teksredigeerder of IDE;
- - 'n vertaler uit die gebruikte programmeertaal.
Instruksies
Stap 1
Gebruik metodes op die stapelvoorwerpe wat spesifiek ontwerp is om die stapel skoon te maak. Dit kom voor in die meeste ooreenstemmende klasse van verskillende biblioteke en raamwerke. Die. NET Stack-klas het byvoorbeeld 'n duidelike metode. 'N Voorbeeld van die toepassing daarvan in C # kan so lyk:
Stapel oStack = nuwe stapel (); // skep 'n stapelvoorwerp
oStack. Push ("000"); // vul die stapel
oStack. Push ("111");
oStack. Clear (); // maak die stapel skoon
Stap 2
Metodes vir die verandering van die aantal elemente van houerklasse waarop die funksionaliteit van stapelklasse dikwels gebou word, kan ook gebruik word vir skoonmaak. U hoef net die huidige aantal elemente tot nul te verminder. Die Qt-sjabloonklas QStack erf byvoorbeeld van die QVector-sjabloonklas, wat 'n grootte-metode het. 'N Voorbeeld van die gebruik daarvan kan soos volg wees:
QStack oStack; // verklaring van die stapelvoorwerp
vir (int i = 0; i <10; i ++) oStack.push (i); // vul die stapel
oStack.resize (0); // maak die stapel skoon
Stap 3
Opruim van 'n stapelvoorwerp kan gewoonlik gedoen word deur die opdragoperateur, wat dikwels in die ooreenstemmende klasse geïmplementeer word. Om dit te doen, moet die voorwerp van die stapel wat skoongemaak moet word, 'n tydelike voorwerp kry wat deur die standaardkonstrukteur geskep is. Byvoorbeeld, die C ++ standaardbiblioteek-stapelklas, wat 'n adapter is vir houersjabloonklasse, het nie metodes om die nommer willekeurig te verander of alle elemente te verwyder nie. U kan dit so uitvee:
std:: stapel <int, std:: lys> oStack; // verklaring van die stapelvoorwerp
vir (int i = 0; i <10; i ++) oStack.push (i); // vul die stapel
oStack = std:: stapel
Stap 4
Maak die stapelvoorwerp skoon deur die kopie-konstrukteur te skakel met behulp van die nuwe operateur met 'n objekargument wat deur die standaardkonstruksie geskep is:
std:: stapel <int, std:: lys> oStack; // verklaring van die stapelvoorwerp
vir (int i = 0; i <10; i ++) oStack.push (i); // vul die stapel
nuwe std:: stapel
Stap 5
Die stapel kan skoongemaak word deur die elemente opeenvolgend op te haal met behulp van die toepaslike metodes:
std:: stapel <int, std:: lys> oStack; // verklaring van die stapelvoorwerp
vir (int i = 0; i <10; i ++) oStack.push (i); // vul die stapel
terwyl (! oStack.empty ()) oStack.pop (); // die stapel skoonmaak
Hierdie benadering het egter 'n tydskompleksiteit wat lineêr afhang van die aantal elemente in die stapel. Daarom is die gebruik daarvan nie rasioneel nie.