logo

Pinoa C++ STL:ssä

Pinot ovat eräänlaisia ​​säiliösovittimia, joissa on LIFO (Last In First Out) -tyyppinen toiminta, jossa uusi elementti lisätään toiseen päähän (yläosaan) ja elementti poistetaan vain siitä päästä. Pino käyttää jommankumman kapseloitua objektia vektori tai deque (oletuksena) tai lista (peräkkäinen säiliöluokka) sen taustalla oleva säilöntä, joka tarjoaa tietyn joukon jäsentoimintoja, joiden avulla pääset käsiksi sen elementteihin.

lajittelu listaan ​​javassa

Jos pinon ja jonon välisen peruseron muistamisessa on hämmennystä, ota vain tosielämän esimerkki tästä erottelusta, pinoamiseen, kirjojen pinoamiseen voimme ottaa helposti ylimmän kirjan ja jonossa muista milloin joudut seisomaan jonossa automaatista käteisen nostamiseen, niin ensimmäisellä lähellä olevalla henkilöllä on ensimmäinen mahdollisuus nostaa rahat pankkiautomaatista. Joten jono on FIFO-tyyppinen (First In First Out) toimiva.



Pinon syntaksi: -

Pinon luomiseksi meidän on sisällytettävä otsikkotiedosto koodiimme. Käytämme sitten tätä syntaksia määrittämään std::stack:

sapluunaluokka pino;

Tyyppi – on std::pinon sisältämän elementin tyyppi. Se voi olla mikä tahansa kelvollinen C++-tyyppi tai jopa käyttäjän määrittämä tyyppi.



Säiliö – on taustalla olevan säiliöobjektin tyyppi.

Jäsentyypit: -

value_type- Ensimmäinen malliparametri, T. Se ilmaisee elementtityyppejä.



container_type- Toinen mallin parametri, Container. Se ilmaisee taustalla olevan säiliötyypin.

size_type- Signed integraalityyppi.

Pinoon liittyvät toiminnot ovat:
tyhjä() – Palauttaa onko pino tyhjä – Aika monimutkaisuus: O(1)
size() – Palauttaa pinon koon – Aika monimutkaisuus: O(1)
top() – Palauttaa viittauksen pinon ylimpään elementtiin – Aika monimutkaisuus: O(1)
push(g) – Lisää elementin ”g” pinon yläosaan – Aika monimutkaisuus: O(1)
pop() – Poistaa pinon viimeksi syötetyn elementin – Aika monimutkaisuus: O(1)

C++


milloin win 7 ilmestyi



#include> #include> using> namespace> std;> int> main() {> >stack<>int>>pino;> >stack.push(21);>// The values pushed in the stack should be of the same data which is written during declaration of stack> >stack.push(22);> >stack.push(24);> >stack.push(25);> >int> num=0;> >stack.push(num);> >stack.pop();> >stack.pop();> >stack.pop();> > >while> (!stack.empty()) {> >cout << stack.top() <<>' '>;> >stack.pop();> >}> }>

>

>

Lähtö

22 21>

Aika monimutkaisuus: Tämän ohjelman aikamonimutkaisuus on O(N), missä N on pinon elementtien kokonaismäärä. While-silmukka toistuu N kertaa, ponnahtaa elementtejä pinosta ja tulostaa ne.

Avaruuden monimutkaisuus: Tämän ohjelman tilamonimutkaisuus on O(N), missä N on pinon elementtien kokonaismäärä. Pinon tietorakenne käyttää tilaa suhteessa siihen tallennettujen elementtien määrään. Tässä tapauksessa pinon maksimikoko on 5, joten tilan monimutkaisuus on vakio ja sitä voidaan pitää myös O(1):nä.

Koodin selitys:

  1. Sisällytä iostream-otsikkotiedosto tai koodimme käyttääksesi sen toimintoja.
  2. Sisällytä pinon otsikkotiedosto koodiimme käyttääksesi sen toimintoja, jos se on jo sisällytetty, pinon otsikkotiedostoa ei tarvita, koska siihen on jo sisäänrakennettu toiminto.
  3. Sisällytä std-nimiavaruus koodiimme käyttääksesi sen luokkia kutsumatta sitä.
  4. Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tähän toimintoon.
  5. Luo pino kokonaislukuarvojen tallentamiseksi.
  6. Käytä push()-funktiota lisätäksesi arvon 21 pinoon.
  7. Käytä push()-funktiota lisätäksesi arvon 22 pinoon.
  8. Käytä push()-funktiota lisätäksesi arvon 24 pinoon.
  9. Käytä push()-funktiota lisätäksesi arvon 25 pinoon.
  10. Syötä muuttujan arvo kokonaislukumuuttujalla num. Tässä sen arvo on 0, mutta voimme antaa minkä tahansa kokonaisluvun käyttämällä cin>> num.
  11. Käytä push()-funktiota lisätäksesi muuttujan num arvo.
  12. Käytä pop()-funktiota poistaaksesi pinosta ylimmän elementin, eli 25. Yläelementistä tulee nyt 24.
  13. Käytä pop()-funktiota poistaaksesi pinosta ylimmän elementin, eli 24. Yläelementistä tulee nyt 22.
  14. Käytä while-silmukkaa ja tyhjä()-funktiota tarkistaaksesi, onko pino EI tyhjä. ! on EI-operaattori. Joten, kun pino ei ole tyhjä, tyhjä()-funktio palauttaa false ja NOT-operaattori muuntaa sen true ja while-silmukka jatkaa käynnissä. Mutta kun pino tyhjenee, tyhjä()-funktio palauttaa true ja NOT-operaattori tekee siitä false ja silmukka päättyy.
  15. Pinon nykyisen sisällön tulostaminen konsoliin.
  16. Kutsu pinon pop()-funktiota.
  17. While-silmukan rungon loppu.
  18. Main()-funktion rungon loppu.

Luettelo Stackin toiminnoista:

  • pino::top() C++ STL:ssä
  • pino::empty() ja pino::size() C++ STL:ssä
  • pino::push() ja pino::pop() C++ STL:ssä
  • pino::swap() C++ STL:ssä
  • pino::emplace() C++ STL:ssä
  • Viimeisimmät artikkelit C++ Stackista