Hoe De Stapel Leeg Te Maken?

Inhoudsopgave:

Hoe De Stapel Leeg Te Maken?
Hoe De Stapel Leeg Te Maken?

Video: Hoe De Stapel Leeg Te Maken?

Video: Hoe De Stapel Leeg Te Maken?
Video: How to Make Fresh Homemade Guacamole - Easy Guacamole Recipe 2024, November
Anonim

Een van de soorten datastructuren die tegenwoordig veel worden gebruikt in applicatieprogrammering, is de stapel. Zijn eigenaardigheid is het principe van het organiseren van elementen, waarbij hun toevoeging en verwijdering slechts één voor één mogelijk is en alleen via de "top", dat wil zeggen volgens het LIFO-principe. Maar soms is het nodig om de hele stapel in één keer leeg te maken.

Hoe de stapel leeg te maken?
Hoe de stapel leeg te maken?

Noodzakelijk

  • - teksteditor of IDE;
  • - een vertaler uit de gebruikte programmeertaal.

instructies:

Stap 1

Gebruik methoden op de stapelobjecten die speciaal zijn ontworpen om de stapel op te ruimen. Ze zijn aanwezig in de meeste van de overeenkomstige klassen van verschillende bibliotheken en frameworks. De klasse. NET Stack heeft bijvoorbeeld een Clear-methode. Een voorbeeld van de toepassing ervan in C # kan er als volgt uitzien:

Stapel oStack = nieuwe stapel (); // maak een stapelobject

oStack. Push ("000"); // vul de stapel

oStack. Push ("111");

oStack. Clear (); // leeg de stapel

Stap 2

Methoden voor het wijzigen van het aantal elementen van containerklassen, waarop de functionaliteit van stapelklassen vaak is gebouwd, kunnen ook worden gebruikt voor het opschonen. U hoeft alleen het huidige aantal elementen terug te brengen tot nul. De Qt-sjabloonklasse QStack erft bijvoorbeeld van de QVector-sjabloonklasse, die een resize-methode heeft. Een voorbeeld van het gebruik ervan zou als volgt kunnen zijn:

QStack oStack; // declaratie van het stapelobject

voor (int i = 0; i <10; i ++) oStack.push (i); // vul de stapel

oStack.resize (0); // leeg de stapel

Stap 3

Het opschonen van een stapelobject kan meestal worden gedaan via de toewijzingsoperator, die vaak wordt geïmplementeerd in de bijbehorende klassen. Om dit te doen, moet het object van de stapel die moet worden gewist, worden toegewezen aan een tijdelijk object dat is gemaakt door de standaardconstructor. De C++ Standard Library-stacksjabloonklasse, die een adapter is voor containersjabloonklassen, heeft bijvoorbeeld geen methoden voor het willekeurig wijzigen van het nummer of het verwijderen van alle elementen. Je kunt het als volgt wissen:

std:: stapel <int, std:: lijst> oStack; // declaratie van het stapelobject

voor (int i = 0; i <10; i ++) oStack.push (i); // vul de stapel

oStack = std:: stapel(); // leeg de stape

Stap 4

Wis het stapelobject door de kopieerconstructor aan te roepen met behulp van de nieuwe operator met een objectargument dat is gemaakt door de standaardconstructor:

std:: stapel <int, std:: lijst> oStack; // declaratie van het stapelobject

voor (int i = 0; i <10; i ++) oStack.push (i); // vul de stapel

nieuwe std:: stapel(oStack); // leeg de stape

Stap 5

De stapel kan worden gewist door achtereenvolgens alle elementen op te halen met behulp van de juiste methoden:

std:: stapel <int, std:: lijst> oStack; // declaratie van het stapelobject

voor (int i = 0; i <10; i ++) oStack.push (i); // vul de stapel

while (! oStack.empty ()) oStack.pop (); // wis de stapel

Deze benadering heeft echter een tijdcomplexiteit die lineair afhangt van het aantal elementen in de stapel. Daarom is het gebruik ervan niet rationeel.

Aanbevolen: