logo

Saglabājiet C++ STL formātā

Stacks ir konteinera adapteru veids ar LIFO (Last In First Out) darbību, kur vienā galā (augšā) tiek pievienots jauns elements un elements tiek noņemts tikai no šī gala. Stack izmanto iekapsulētu objektu vai nu vektors vai deque (pēc noklusējuma) vai sarakstu (secīgā konteinera klase) kā tā pamatā esošo konteineru, nodrošinot konkrētu dalībnieku funkciju kopu, lai piekļūtu tā elementiem.

java apgriež virkni

Ja rodas neskaidrības, atceroties pamata atšķirību starp kaudzi un rindu, tad vienkārši izmantojiet reālu piemēru šai atšķirībai, grāmatu kaudzei, sakraušanai mēs varam viegli paņemt augšējo grāmatu, un rindā atcerieties, kad jums ir jāstāv rindā priekšā. no bankomāta skaidras naudas izņemšanai, tad pirmajai personai, kas atrodas bankomāta tuvumā, ir pirmā iespēja izņemt naudu no bankomāta. Tātad rinda darbojas FIFO (First In First Out) veids.



Stack sintakse:-

Lai izveidotu steku, mūsu kodā ir jāiekļauj galvenes fails. Pēc tam mēs izmantojam šo sintaksi, lai definētu std::steck:

veidneklases kaudze;

Tips – ir elementa tips, kas ietverts std::steck. Tas var būt jebkurš derīgs C++ tips vai pat lietotāja definēts tips.



Konteiners – ir pamatā esošā konteinera objekta tips.

Dalībnieku veidi: -

value_type- pirmais veidnes parametrs T. Tas apzīmē elementu tipus.



container_type — otrais veidnes parametrs Container. Tas apzīmē pamatā esošā konteinera veidu.

size_type- neparakstīts integrālais tips.

Ar steku saistītās funkcijas ir:
tukšs() — atgriež, vai kaudze ir tukša — laika sarežģītība: O(1)
size() — atgriež kaudzes izmēru — laika sarežģītība: O(1)
top() — atgriež atsauci uz steka augšējo elementu — laika sarežģītība: O(1)
push(g) — pievieno elementu “g” kaudzes augšpusē — laika sarežģītība: O(1)
pop() – izdzēš pēdējo ievadīto steka elementu – Laika sarežģītība: O(1)

C++




#include> #include> using> namespace> std;> int> main() {> >stack<>int>>kaudze;> >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();> >}> }>

>

>

Izvade

22 21>

Laika sarežģītība: Šīs programmas laika sarežģītība ir O(N), kur N ir kopējais elementu skaits kaudzē. Cilpa while atkārtojas N reizes, izlecot elementus no kaudzes un izdrukājot tos.

Telpas sarežģītība: Šīs programmas telpas sarežģītība ir O(N), kur N ir kopējais elementu skaits kaudzē. Steka datu struktūra izmanto vietu proporcionāli tajā saglabāto elementu skaitam. Šajā gadījumā maksimālais kaudzes izmērs ir 5, tāpēc telpas sarežģītība ir nemainīga un to var uzskatīt arī par O(1).

sadales likuma Būla algebra

Koda skaidrojums:

  1. Iekļaujiet iostream galvenes failu vai mūsu kodā, lai izmantotu tā funkcijas.
  2. Iekļaujiet mūsu kodā steka galvenes failu, lai izmantotu tā funkcijas, ja tas jau ir iekļauts, tad nav nepieciešams steka galvenes fails, jo tajā jau ir iebūvēta funkcija.
  3. Iekļaujiet mūsu kodā std nosaukumvietu, lai izmantotu tās klases, to neizsaucot.
  4. Izsauciet galveno () funkciju. Programmas loģika ir jāpievieno šai funkcijai.
  5. Izveidojiet kaudzi, lai saglabātu veselu skaitļu vērtības.
  6. Izmantojiet funkciju push(), lai kaudzē ievietotu vērtību 21.
  7. Izmantojiet funkciju push(), lai ievietotu kaudzē vērtību 22.
  8. Izmantojiet funkciju push(), lai ievietotu kaudzē vērtību 24.
  9. Izmantojiet funkciju push(), lai ievietotu kaudzē vērtību 25.
  10. Izmantojiet veselu mainīgo num, lai ievadītu mainīgā vērtību. Šeit tā vērtība ir 0, bet mēs varam piešķirt jebkuru veselu skaitli, izmantojot cin>> num.
  11. Izmantojiet funkciju push(), lai ievietotu mainīgā num vērtību.
  12. Izmantojiet funkciju pop(), lai noņemtu no kaudzes augšējo elementu, tas ir, 25. Augšējais elements tagad kļūst par 24.
  13. Izmantojiet funkciju pop(), lai noņemtu no kaudzes augšējo elementu, tas ir, 24. Augšējais elements tagad kļūst par 22.
  14. Izmantojiet kamēr cilpu un tukšu() funkciju, lai pārbaudītu, vai kaudze NAV tukša. ! ir NOT operators. Tātad, ja kaudze nav tukša, funkcija tukša () atgriezīs false, un operators NOT konvertēs to kā patiesu, un kamēr cilpa turpina darboties. Bet, kad kaudze kļūst tukša, funkcija tukša () atgriezīs patieso vērtību, un operators NOT padarīs to nepatiesu, un cilpa beidzas.
  15. Pašreizējā skursteņa satura drukāšana konsolē.
  16. Izsauciet funkciju pop() stekā.
  17. Nors cilpas korpusa beigas.
  18. Galvenās() funkcijas korpusa beigas.

Stack funkciju saraksts:

  • kaudze::top() C++ STL
  • stack::empty() un kaudze::size() C++ STL
  • stack::push() un kaudze::pop() C++ STL
  • kaudze::swap() C++ STL
  • kaudze::emplace() C++ STL
  • Jaunākie raksti par C++ Stack