Hvordan Fjerne Bunken

Innholdsfortegnelse:

Hvordan Fjerne Bunken
Hvordan Fjerne Bunken

Video: Hvordan Fjerne Bunken

Video: Hvordan Fjerne Bunken
Video: Отмеченный наградами дом в виде бетонного бункера (Экскурсия по дому) 2024, November
Anonim

En av typene datastrukturer som er mye brukt i dag i applikasjonsprogrammering, er stakken. Dens særegenhet er prinsippet om å organisere elementer, der deres tilsetning og fjerning bare er mulig en om gangen og bare gjennom "toppen", det vil si i henhold til LIFO-prinsippet. Men noen ganger er det nødvendig å fjerne hele stakken på en gang.

Hvordan fjerne bunken
Hvordan fjerne bunken

Nødvendig

  • - tekstredigerer eller IDE;
  • - en oversetter fra det brukte programmeringsspråket.

Bruksanvisning

Trinn 1

Bruk metoder på stabelobjektene som er spesielt designet for å rydde opp bunken. De er til stede i de fleste av de tilsvarende klassene i forskjellige biblioteker og rammer. NET Stack-klassen har for eksempel en Clear-metode. Et eksempel på anvendelse i C # kan se slik ut:

Stack oStack = new Stack (); // opprette et stabelobjekt

oStack. Push ("000"); // fyll bunken

oStack. Push ("111");

oStack. Clear (); // tøm bunken

Steg 2

Metoder for å endre antall elementer i containerklasser, som funksjonaliteten til stackklasser ofte er bygget på, kan også brukes til rengjøring. Du trenger bare å redusere det nåværende antall elementer til null. For eksempel arver Qt-malklassen QStack fra QVector-malklassen, som har en størrelsesmetode. Et eksempel på bruken kan være slik:

QStack oStack; // erklæring av stabelobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyll bunken

oStack.resize (0); // tøm bunken

Trinn 3

Opprydding av et stabelobjekt kan vanligvis gjøres gjennom oppdragsoperatøren, som ofte implementeres i de tilsvarende klassene. For å gjøre dette må objektet til stakken som skal ryddes, tildeles et midlertidig objekt opprettet av standardkonstruktøren. For eksempel har C ++ Standard Library-malklassen, som er en adapter for containermalklasser, ikke metoder for å endre nummeret vilkårlig eller fjerne alle elementene. Du kan fjerne det slik:

std:: stack <int, std:: list> oStack; // erklæring av stabelobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyll bunken

oStack = std:: stack(); // tøm bunke

Trinn 4

Fjern stabelobjektet ved å ringe kopikonstruktøren ved hjelp av den nye operatøren med et objektargument opprettet av standardkonstruktøren:

std:: stack <int, std:: list> oStack; // erklæring av stabelobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyll bunken

ny std:: stack(oStack); // tøm bunke

Trinn 5

Stakken kan ryddes ved å hente alle elementene sekvensielt ved å bruke de riktige metodene:

std:: stack <int, std:: list> oStack; // erklæring av stabelobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyll bunken

mens (! oStack.empty ()) oStack.pop (); // tøm bunken

Denne tilnærmingen har imidlertid en tidskompleksitet som avhenger lineært av antall elementer i stabelen. Derfor er bruken ikke rasjonell.

Anbefalt: