Kuinka Tyhjentää Pino

Sisällysluettelo:

Kuinka Tyhjentää Pino
Kuinka Tyhjentää Pino

Video: Kuinka Tyhjentää Pino

Video: Kuinka Tyhjentää Pino
Video: Valitse pino - Kuinka muutat elämäsi juuri nyt? 2024, Marraskuu
Anonim

Yksi tietorakenteista, joita käytetään nykyään laajalti sovellusten ohjelmoinnissa, on pino. Sen erikoisuus on elementtien järjestämisen periaate, jossa niiden lisääminen ja poistaminen on mahdollista vain yksi kerrallaan ja vain "yläosan" kautta, toisin sanoen LIFO-periaatteen mukaisesti. Mutta joskus on tarpeen tyhjentää koko pino kerralla.

Kuinka tyhjentää pino
Kuinka tyhjentää pino

Tarpeellinen

  • - tekstieditori tai IDE;
  • - kääntäjä käytetystä ohjelmointikielestä.

Ohjeet

Vaihe 1

Käytä pinon kohteissa menetelmiä, jotka on erityisesti suunniteltu siivottamaan pino. Ne ovat läsnä useimmissa vastaavissa luokissa eri kirjastoissa ja kehyksissä. Esimerkiksi. NET Stack -luokalla on Clear-menetelmä. Esimerkki sen sovelluksesta C #: ssa saattaa näyttää tältä:

Pino oStack = uusi pino (); // luo pino-objekti

oStack. Push ("000"); // täytä pino

oStack. Push ("111");

oPino. Selvä (); // tyhjennä pino

Vaihe 2

Puhdistuksessa voidaan käyttää myös menetelmiä säiliöluokkien elementtien lukumäärän muuttamiseksi, joille pinoluokkien toiminnallisuus usein rakentuu. Sinun tarvitsee vain vähentää nykyinen elementtien lukumäärä nollaan. Esimerkiksi Qt-malliluokka QStack perii QVector-malliluokan, jolla on kokomenetelmä. Esimerkki sen käytöstä voi olla seuraava:

QStack oStack; // pino-objektin ilmoitus

for (int i = 0; i <10; i ++) oStack.push (i); // täytä pino

oPino.koko (0); // tyhjennä pino

Vaihe 3

Pino-objektin puhdistaminen voidaan yleensä suorittaa määritysoperaattorin kautta, joka usein toteutetaan vastaavissa luokissa. Tätä varten tyhjennettävän pinon objektille on määritettävä oletusrakentajan luoma väliaikainen objekti. Esimerkiksi C ++ - standardikirjaston pino malliluokalla, joka on sovitin konttipohjamalliluokille, ei ole menetelmiä numeron mielivaltaiseen muuttamiseen tai kaikkien elementtien poistamiseen. Voit tyhjentää sen näin:

vakio:: pino <int, vakio:: luettelo> oPino; // pino-objektin ilmoitus

for (int i = 0; i <10; i ++) oStack.push (i); // täytä pino

oPino = vakio:: pino(); // tyhjennä pin

Vaihe 4

Tyhjennä pinoobjekti kutsumalla kopionrakentajaa uudella operaattorilla oletusrakentajan luomalla objekti-argumentilla:

vakio:: pino <int, vakio:: luettelo> oPino; // pino-objektin ilmoitus

for (int i = 0; i <10; i ++) oStack.push (i); // täytä pino

uusi vakio:: pino(oPino); // tyhjennä pin

Vaihe 5

Pino voidaan tyhjentää hakemalla kaikki elementit peräkkäin sopivilla menetelmillä:

vakio:: pino <int, vakio:: luettelo> oPino; // pino-objektin ilmoitus

for (int i = 0; i <10; i ++) oStack.push (i); // täytä pino

while (! oStack.empty ()) oStack.pop (); // tyhjennä pino

Tällä lähestymistavalla on kuitenkin ajan monimutkaisuus, joka riippuu lineaarisesti pinon elementtien lukumäärästä. Siksi sen käyttö ei ole järkevää.

Suositeltava: