Stabler er en type beholderadaptere med LIFO (Last In First Out) type arbeid, der et nytt element legges til i den ene enden (øverst) og et element fjernes kun fra den enden. Stack bruker et innkapslet objekt av begge vektor eller deque (som standard) eller liste (sekvensiell beholderklasse) som dens underliggende beholder, og gir et spesifikt sett med medlemsfunksjoner for å få tilgang til elementene.
typer maskinlæring
Hvis det er forvirring i å huske den grunnleggende forskjellen mellom stabel og kø, så bare ha et virkelighetseksempel for denne differensieringen, for stabel, stabling av bøker kan vi enkelt ta toppboken og for kø husk når du må stå i kø foran av minibank for å ta ut kontanter, så har den første personen i nærheten av minibanken den første sjansen til å ta ut pengene fra minibanken. Så, kø er typen FIFO (First In First Out) som fungerer.
Stabelsyntaks:-
For å lage en stabel må vi inkludere header-filen i koden vår. Vi bruker deretter denne syntaksen til å definere std::stack:
| mal |
Type – er typen element som finnes i std::stabelen. Det kan være en hvilken som helst gyldig C++-type eller til og med en brukerdefinert type.
Container – er typen underliggende beholderobjekt.
Medlemstyper:-
verdi_type- Den første malparameteren, T. Den angir elementtypene.
container_type- Den andre malparameteren, Container. Det angir den underliggende beholdertypen.
size_type- Usignert integraltype.
Funksjonene knyttet til stack er:
empty() – Returnerer om stabelen er tom – Tidskompleksitet : O(1)
size() – Returnerer størrelsen på stabelen – Tidskompleksitet : O(1)
top() – Returnerer en referanse til det øverste elementet i stabelen – Tidskompleksitet : O(1)
push(g) – Legger til elementet ‘g’ på toppen av stabelen – Tidskompleksitet: O(1)
pop() – Sletter det siste elementet i stabelen – Tidskompleksitet: O(1)
C++
#include> #include> using> namespace> std;> int> main() {> >stack<>int>>stabel;> >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();> >}> }> |
>
>Produksjon
første ordens logikk
22 21>
Tidskompleksitet: Tidskompleksiteten til dette programmet er O(N), der N er det totale antallet elementer i stabelen. While-løkken itererer N ganger, spretter elementer fra stabelen og skriver dem ut.
Plass kompleksitet: Romkompleksiteten til dette programmet er O(N), der N er det totale antallet elementer i stabelen. Stabeldatastrukturen bruker plass proporsjonalt med antall elementer som er lagret i den. I dette tilfellet er den maksimale størrelsen på stabelen 5, så romkompleksiteten er konstant og kan også betraktes som O(1).
Kodeforklaring:
- Inkluder iostream-headerfilen eller i koden vår for å bruke funksjonene.
- Inkluder stabelhodefilen i koden vår for å bruke dens funksjoner hvis den allerede er inkludert, så trenger du ikke stabeloverskriftsfil fordi den allerede har innebygd funksjon i den.
- Inkluder std-navneområdet i koden vår for å bruke klassene uten å kalle det.
- Kalle hoved()-funksjonen. Programlogikken bør legges til i denne funksjonen.
- Opprett en stabel for å lagre heltallsverdier.
- Bruk push()-funksjonen for å sette inn verdien 21 i stabelen.
- Bruk push()-funksjonen for å sette inn verdien 22 i stabelen.
- Bruk push()-funksjonen for å sette inn verdien 24 i stabelen.
- Bruk push()-funksjonen for å sette inn verdien 25 i stabelen.
- Bruk en heltallsvariabel num for å angi en variabelverdi. Her er verdien 0, men vi kan tilordne en hvilken som helst heltallsverdi ved å bruke cin>> num.
- Bruk push()-funksjonen for å sette inn verdien av num-variabelen.
- Bruk pop()-funksjonen for å fjerne toppelementet fra stabelen, det vil si 25. Toppelementet blir nå 24.
- Bruk pop()-funksjonen for å fjerne toppelementet fra stabelen, det vil si 24. Toppelementet blir nå 22.
- Bruk funksjonen while loop og empty() for å sjekke om stabelen IKKE er tom. Den ! er NOT-operatøren. Så når stabelen ikke er tom, vil empty()-funksjonen returnere false og NOT-operatoren konverterer den til true og while-løkken fortsetter å kjøre. Men når stabelen blir tom, vil empty()-funksjonen returnere sann og NOT-operatoren vil gjøre den falsk og løkken avsluttes.
- Skriver ut gjeldende innhold i stabelen på konsollen.
- Kall opp pop()-funksjonen på stabelen.
- Slutten av kroppen av while-løkken.
- Slutten av hoved()-funksjonens hoveddel.
Liste over funksjoner til Stack:
- stack::top() i C++ STL
- stack::empty() og stack::size() i C++ STL
- stack::push() og stack::pop() i C++ STL
- stack::swap() i C++ STL
- stack::emplace() i C++ STL
- Nylige artikler om C++ Stack