Kā Notīrīt Kaudzi

Satura rādītājs:

Kā Notīrīt Kaudzi
Kā Notīrīt Kaudzi

Video: Kā Notīrīt Kaudzi

Video: Kā Notīrīt Kaudzi
Video: Kā ātri notīrīt sudrablietas.Quick cleaning of silver. 2024, Novembris
Anonim

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.

Kā notīrīt kaudzi
Kā notīrīt kaudzi

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(); // notīriet kaudzīt

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(oStack); // notīriet kaudzīt

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.

Ieteicams: