Sådan Ryddes Stakken

Indholdsfortegnelse:

Sådan Ryddes Stakken
Sådan Ryddes Stakken

Video: Sådan Ryddes Stakken

Video: Sådan Ryddes Stakken
Video: Как очистить быстро и легко квартиру от негатива с помощью деревьев 2024, November
Anonim

En af de typer datastrukturer, der er meget udbredt i dag i applikationsprogrammering, er stakken. Dens særegenhed er princippet om at organisere elementer, hvor deres tilføjelse og fjernelse kun er mulig én ad gangen og kun gennem "toppen", det vil sige ifølge LIFO-princippet. Men nogle gange er det nødvendigt at rydde hele stakken på én gang.

Sådan ryddes stakken
Sådan ryddes stakken

Nødvendig

  • - teksteditor eller IDE;
  • - en oversætter fra det anvendte programmeringssprog.

Instruktioner

Trin 1

Brug metoder på stakobjekterne, der er specielt designet til at rydde op i stakken. De er til stede i de fleste af de tilsvarende klasser i forskellige biblioteker og rammer. For eksempel har. NET Stack-klassen en Clear-metode. Et eksempel på dets anvendelse i C # kan se sådan ud:

Stak oStack = ny stak (); // opret et stakobjekt

oStack. Push ("000"); // fyld stakken

oStack. Push ("111");

oStack. Clear (); // ryd stakken

Trin 2

Metoder til at ændre antallet af elementer i beholderklasser, som funktionaliteten af stakklasser ofte er bygget på, kan også bruges til rengøring. Du skal bare reducere det aktuelle antal elementer til nul. F.eks. Arver Qt-skabelonklassen QStack fra QVector-skabelonklassen, som har en størrelsesmetode. Et eksempel på dets anvendelse kan være sådan:

QStack oStack; // erklæring af stakobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyld stakken

oStack.resize (0); // ryd stakken

Trin 3

Oprydning af et stakobjekt kan normalt ske gennem tildelingsoperatøren, som ofte implementeres i de tilsvarende klasser. For at gøre dette skal objektet til stakken, der skal ryddes, tildeles et midlertidigt objekt oprettet af standardkonstruktøren. For eksempel har C ++ Standard Library-skabelonklassen, som er en adapter til containerskabelonklasser, ikke metoder til vilkårlig ændring af nummeret eller fjernelse af alle elementer. Du kan rydde det således:

std:: stack <int, std:: list> oStack; // erklæring af stakobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyld stakken

oStack = std:: stack(); // ryd stakke

Trin 4

Ryd stakobjektet ved at ringe til kopikonstruktøren ved hjælp af den nye operator med et objektargument oprettet af standardkonstruktøren:

std:: stack <int, std:: list> oStack; // erklæring af stakobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyld stakken

ny std:: stak(oStack); // ryd stakke

Trin 5

Stakken kan ryddes ved sekventielt at hente alle elementer ved hjælp af de relevante metoder:

std:: stack <int, std:: list> oStack; // erklæring af stakobjektet

for (int i = 0; i <10; i ++) oStack.push (i); // fyld stakken

mens (! oStack.empty ()) oStack.pop (); // ryd stakken

Denne tilgang har imidlertid en tidskompleksitet, der afhænger lineært af antallet af elementer i stakken. Derfor er dens anvendelse ikke rationel.

Anbefalede: