Lag stack i C ++

Lag stack i C ++

En stabel er en grunnleggende datastruktur som fungerer som en lineær liste som inneholder dens elementer. I dette tilfellet blir varen lagt til i den ene enden av listen, kjent som toppen, og elementene fjernes fra samme side. Dette betyr at elementet som er lagt inn i den første stillingen vil bli fjernet på slutten. Vi kan opprette, slette eller oppdatere elementene.

Ny stabelskaping

For å opprette en ny stabel, må vi først inkludere Stack -biblioteket for å utføre alle funksjonene som brukes på stabelen.

Mal > Klassestabel

Verdiene som er til stede i syntaks er 'type' som viser typen element som er til stede i bunken. Det kan være hvilken som helst type som heltall, float osv. Den andre er 'container' som er typen objekt for container som for øyeblikket brukes.

Operasjoner av stabel

Den primære driften av stabelen er forklart nedenfor:

  • Trykk: Push () -funksjonen kommer inn i elementene i stabelen. Den sjekker først hvis stabelen allerede er full, så er denne tilstanden kjent som en overløpstilstand.
  • Pop: Denne pop () -funksjonen fjerner elementet fra stabelen. Om gangen er det bare en enkelt vare fjernet fra stabelen. Elementene blir fjernet i omvendt rekkefølge de ble lagt inn i PUSH () -funksjonen. Situasjonen med å være en tom stabel er kjent for å være en understrømningsstabel.
  • Peek eller topp: Denne funksjonen returnerer elementet som er toppelementet i stabelen.
  • er tom: Det er et boolsk uttrykk som returnerer sant hvis stabelen allerede er tom, men hvis den ikke er tom, returnerer denne funksjonen falsk.

Stack -applikasjoner

Redo-Undo-funksjonen er veldig vanlig blant tekstredaktører eller fotoredaktører som Photoshop, og MS Word er et eksempel på stabelen.

Mens vi bruker en nettleser, ser vi frem og bakoveralternativene for de nylig lukkede sidene.

Stack brukes også som minnestyring; Moderne datamaskiner kan bruke stabelen som primæradministrasjon for løpsprogrammene.

Arbeidsteknikker / algoritme av stabelen

  • En peker som kalles toppen brukes til å ta posten til elementet som er øverst på stabelen.
  • Vi har en tom stabel i starttrinnet, så toppen er satt på en -1 -stilling. Årsaken til å gjøre dette er at tomheten til stabelen er lett sjekket. Dette gjøres ved å sammenligne det med topp == 1.
  • Neste trinn er å skyve varen, så på det tidspunktet øker vi toppverdien og plasserer den nye varen i den posisjonen som er pekt på toppen.
  • Når det gjelder å bruke POP () -funksjonen, returnerer vi elementet som er pekt på toppen, og deretter reduseres den nåværende verdien av toppen.
  • To ting bør sjekkes på tidspunktet for å skyve og sprite elementer. Tilsvarende, før vi poppet, sjekket vi om stabelen var tom eller ikke.

Implementering av stabel

Eksempel 1

Som beskrevet ovenfor, før vi starter hovedprogrammet, må vi legge til Stack -biblioteket i overskriftsfilen til programmet vårt.

#inkludere

Dette biblioteket inneholder alle operasjoner og tilhørende funksjoner, så det skal brukes. Vi har brukt navneområdet STD for å bruke alle klassene uten å ringe. I hovedprogrammet brukte vi en enkel logikk for å demonstrere hver stabeloperasjon i en enkelt linje.

Vi har laget en stabel for å lagre verdiene til heltalldatatyper.

Stable st.

For å legge inn verdiene i stabelen, har vi manuelt brukt Push () -funksjonen. Hver gang denne funksjonen vil bli kalt av objektet som vi oppretter. Vi bruker push () for å legge inn verdiene fra 50 til 80. Etter innsetting må vi poppe ut verdien ved å bruke POP (). Ved å bruke denne funksjonen vil det øverste elementet fra stabelen som er 80 bli fjernet, og nå vil 70 bli toppelementet. Ved å bruke POP () -funksjonen igjen, vil vi fjerne 70 -tallet, og nå er toppelementet 60. Til slutt bruker vi mens loopen for å sikre at stabelen er full. Hvis det er sant, blir POP () -funksjonen brukt. Mens sløyfekroppen er avsluttet.

Bruk G ++ -kompilatoren til å kompilere og utføre kildekoden. "Stable.C ”er navnet på en fil.

$ G ++ -O Stack Stack.c.
$ ./stable

Du kan se at når programmet blir utført, blir begge verdiene som ble lagt inn på slutten fjernet fra stabelen ved å jobbe med LIFO -teknikken.

Eksempel 2

Gå fremover mot det andre eksemplet, dette involverer brukerinteraksjon. Alle stabeloperasjonene brukes separat i dette programmet. Vi viser også alle elementene i stabelen. I hovedprogrammet kalles hver funksjon etter verdien som brukeren oppgir under utførelsen. Nå som starter fra den første driften av stabelen ved å bruke navneområdet STD, kommer funksjonen i gang. Her har vi erklært stabelen globalt med heltalldatatypen på 100 elementer med elementer. Push -funksjonen mottar verdien fra hovedprogrammet som brukeren vil legge inn. Inne i funksjonen brukes if-ests-setningen for å sjekke om stabelen ikke er full. Hvis bunken ikke er tom, vises en melding til brukeren; ellers settes verdien inn. Og toppverdien økes.

Tilsvarende, når det gjelder POP () -funksjonen, sjekkes toppverdien hvis den er under -1 plassering betyr at stabelen er tom, så meldingen vises ellers, verdien er pop ut.

Vi bruker en 'for' -sløyfe for å vise alle elementene som er satt inn av push () i stabelen for å vise alle elementene.

En brukervennlig meny opprettes i hovedprogrammet for å få brukeralternativet.

4 alternativer vises. Hvis brukeren velger 1., vil dette være push -funksjonen. For dette formålet har vi brukt en bryterklæring. Kompilatoren passerer det angitte valget, og programmet blir utført.

Etter det, utfør koden; Nå vil du se en meny som vises på vellykket kodeutførelse. Først vil vi velge første alternativ for å sette inn verdier. Verdiene vil bli satt inn de første fire gangene, og deretter vil vi vise alle verdiene ved å velge alternativ nummer 3.

Alle verdiene vises her. Nå må vi sprette ut den siste verdien vi har lagt inn. Så velg alternativ 2. Dette vil fjerne toppverdien. Igjen velger du popalternativet igjen vil fjerne den øverste verdien.

Konklusjon

Artikkelen 'Create Stack in C ++' involverer Linux -operativsystemet for å implementere programmet på C ++ programmeringsspråket. Gjeldende guide inneholder grunnleggende bruk og erklæring om stabelen i C++. Vi har brukt to eksempler som involverer driften av stabelen. Noen daglige rutinemessige eksempler på stabelen er også nevnt i denne artikkelen.