L'un des types de structures de données largement utilisés aujourd'hui dans la programmation d'applications est la pile. Sa particularité est le principe d'organisation des éléments, dans lequel leur ajout et leur retrait ne sont possibles qu'un à la fois et uniquement par le "top", c'est-à-dire selon le principe LIFO. Mais parfois, il est nécessaire de vider toute la pile à la fois.

Nécessaire
- - éditeur de texte ou IDE;
- - un traducteur du langage de programmation utilisé.
Instructions
Étape 1
Utilisez des méthodes sur les objets de pile qui sont spécifiquement conçues pour nettoyer la pile. Ils sont présents dans la plupart des classes correspondantes de diverses bibliothèques et frameworks. Par exemple, la classe. NET Stack a une méthode Clear. Un exemple de son application en C# pourrait ressembler à ceci:
Pile oPile = nouvelle Pile (); // crée un objet pile
oStack. Push ("000"); // remplir la pile
oStack. Push ("111");
oStack. Clear (); // efface la pile
Étape 2
Les méthodes de modification du nombre d'éléments des classes de conteneurs, sur lesquelles la fonctionnalité des classes de pile est souvent construite, peuvent également être utilisées pour le nettoyage. Il vous suffit de réduire le nombre actuel d'éléments à zéro. Par exemple, la classe de modèle Qt QStack hérite de la classe de modèle QVector, qui a une méthode de redimensionnement. Un exemple de son utilisation pourrait être comme ceci:
QStack oStack; // déclaration de l'objet pile
pour (int i = 0; i <10; i ++) oStack.push (i); // remplir la pile
oStack.resize (0); // efface la pile
Étape 3
Le nettoyage d'un objet de pile peut généralement être effectué via l'opérateur d'affectation, qui est souvent implémenté dans les classes correspondantes. Pour ce faire, il faut affecter à l'objet de la pile à effacer un objet temporaire créé par le constructeur par défaut. Par exemple, la classe basée sur un modèle de pile de la bibliothèque standard C++, qui est un adaptateur pour les classes basées sur un modèle de conteneur, n'a pas de méthodes pour modifier arbitrairement le nombre ou supprimer tous les éléments. Vous pouvez l'effacer comme ceci:
std:: stack <int, std:: list> oStack; // déclaration de l'objet pile
pour (int i = 0; i <10; i ++) oStack.push (i); // remplir la pile
oPile = std:: pile
Étape 4
Effacez l'objet de la pile en appelant le constructeur de copie à l'aide de l'opérateur new avec un argument d'objet créé par le constructeur par défaut:
std:: stack <int, std:: list> oStack; // déclaration de l'objet pile
pour (int i = 0; i <10; i ++) oStack.push (i); // remplir la pile
nouveau std:: pile
Étape 5
La pile peut être effacée en récupérant séquentiellement tous les éléments à l'aide des méthodes appropriées:
std:: stack <int, std:: list> oStack; // déclaration de l'objet pile
pour (int i = 0; i <10; i ++) oStack.push (i); // remplir la pile
while (! oStack.empty ()) oStack.pop (); // efface la pile
Cependant, cette approche a une complexité temporelle qui dépend linéairement du nombre d'éléments dans la pile. Son utilisation n'est donc pas rationnelle.