Un dels tipus d’estructures de dades que avui s’utilitzen àmpliament en la programació d’aplicacions és la pila. La seva peculiaritat és el principi d’organització d’elements, en què la seva addició i eliminació és possible només un a la vegada i només a través de la "part superior", és a dir, segons el principi LIFO. Però de vegades és necessari esborrar tota la pila alhora.
Necessari
- - editor de text o IDE;
- - un traductor del llenguatge de programació utilitzat.
Instruccions
Pas 1
Utilitzeu mètodes a la pila d'objectes dissenyats específicament per netejar la pila. Estan presents a la majoria de les classes corresponents de diverses biblioteques i marcs. Per exemple, la classe. NET Stack té un mètode Clear. Un exemple de la seva aplicació a C # pot ser així:
Pila oStack = nova pila (); // crear un objecte de pila
oStack. Push ("000"); // omplir la pila
oStack. Push ("111");
oStack. Clear (); // neteja la pila
Pas 2
Els mètodes per canviar el nombre d'elements de classes de contenidors, sobre els quals sovint es basa la funcionalitat de les classes de pila, també es poden utilitzar per netejar. Només cal reduir a zero el nombre actual d’elements. Per exemple, la classe de plantilla Qt QStack hereta de la classe de plantilla QVector, que té un mètode de redimensionament. Un exemple del seu ús podria ser així:
QStack oStack; // declaració de l'objecte de pila
per a (int i = 0; i <10; i ++) oStack.push (i); // omplir la pila
oStack.resize (0); // neteja la pila
Pas 3
La neteja d’un objecte de pila normalment es pot fer a través de l’operador d’assignació, que sovint s’implementa a les classes corresponents. Per fer-ho, a l'objecte de la pila que es vol esborrar se li ha d'assignar un objecte temporal creat pel constructor per defecte. Per exemple, la classe de plantilla de pila de la Biblioteca estàndard C ++, que és un adaptador per a les classes de contenidors, no té mètodes per canviar arbitràriament el número ni eliminar tots els elements. Podeu esborrar-ho així:
std:: stack <int, std:: list> oStack; // declaració de l'objecte de pila
per a (int i = 0; i <10; i ++) oStack.push (i); // omplir la pila
oStack = std:: stack
Pas 4
Esborreu l'objecte de la pila trucant al constructor de còpia mitjançant el nou operador amb un argument d'objecte creat pel constructor per defecte:
std:: stack <int, std:: list> oStack; // declaració de l'objecte de pila
per a (int i = 0; i <10; i ++) oStack.push (i); // omplir la pila
nova std:: stack
Pas 5
La pila es pot esborrar recuperant seqüencialment tots els elements mitjançant els mètodes adequats:
std:: stack <int, std:: list> oStack; // declaració de l'objecte de pila
per a (int i = 0; i <10; i ++) oStack.push (i); // omplir la pila
while (! oStack.empty ()) oStack.pop (); // neteja la pila
No obstant això, aquest enfocament té una complexitat temporal que depèn linealment del nombre d'elements de la pila. Per tant, el seu ús no és racional.