Viens no datu struktūru veidiem, ko mūsdienās plaši izmanto lietojumprogrammu programmēšanā, ir kaudze. Tās īpatnība ir elementu organizēšanas princips, kurā to pievienošana un noņemšana ir iespējama tikai pa vienam un tikai caur "topu", tas ir, saskaņā ar LIFO principu. Bet dažreiz ir nepieciešams notīrīt visu kaudzi uzreiz.
Nepieciešams
- - teksta redaktors vai IDE;
- - tulks no lietotās programmēšanas valodas.
Instrukcijas
1. solis
Uz kaudzes objektiem izmantojiet metodes, kas īpaši paredzētas kaudzes tīrīšanai. Tie ir sastopami lielākajā daļā dažādu bibliotēku un ietvaru atbilstošo klašu. Piemēram,. NET Stack klasei ir Clear metode. Tās piemērošanas piemērs C # varētu izskatīties šādi:
Stack oStack = new Stack (); // izveidot kaudzes objektu
oStack. Push ("000"); // aizpildiet kaudzi
oStack. Push ("111");
o Stack. Clear (); // notīriet kaudzi
2. solis
Tīrīšanai var izmantot arī konteineru klases elementu skaita maiņas metodes, uz kurām bieži tiek veidota kaudzes klašu funkcionalitāte. Jums vienkārši jāsamazina pašreizējais elementu skaits līdz nullei. Piemēram, Qt veidņu klase QStack manto no QVector veidņu klases, kurai ir izmēru maiņas metode. Tā izmantošanas piemērs varētu būt šāds:
QStack oStack; // kaudzes objekta deklarācija
par (int i = 0; i <10; i ++) oStack.push (i); // aizpildiet kaudzi
oStack.resize (0); // notīriet kaudzīti
3. solis
Steka objekta tīrīšanu parasti var veikt, izmantojot piešķiršanas operatoru, kas bieži tiek ieviests attiecīgajās klasēs. Lai to izdarītu, notīrāmās kaudzes objektam jāpiešķir noklusējuma konstruktora izveidots pagaidu objekts. Piemēram, C ++ Standard Library kaudzes veidņu klasē, kas ir konteineru veidņu klašu adapteris, nav metožu, kā patvaļīgi mainīt numuru vai noņemt visus elementus. To var notīrīt šādi:
std:: stack <int, std:: list> oStack; // kaudzes objekta deklarācija
par (int i = 0; i <10; i ++) oStack.push (i); // aizpildiet kaudzi
oStack = std:: stack
4. solis
Notīriet kaudzes objektu, izsaucot kopiju veidotāju, izmantojot jauno operatoru, ar noklusējuma konstruktora izveidotu objekta argumentu:
std:: stack <int, std:: list> oStack; // kaudzes objekta deklarācija
par (int i = 0; i <10; i ++) oStack.push (i); // aizpildiet kaudzi
jauns std:: kaudze
5. solis
Steku var notīrīt, secīgi izgūstot visus elementus, izmantojot atbilstošās metodes:
std:: stack <int, std:: list> oStack; // kaudzes objekta deklarācija
par (int i = 0; i <10; i ++) oStack.push (i); // aizpildiet kaudzi
while (! oStack.empty ()) oStack.pop (); // notīriet kaudzīti
Tomēr šai pieejai ir laika sarežģītība, kas lineāri ir atkarīga no kaudzē esošo elementu skaita. Tāpēc tā izmantošana nav racionāla.