Comment Vider La Pile

Comment Vider La Pile
Comment Vider La Pile

Table des matières:

Anonim

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.

Comment vider la pile
Comment vider la pile

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(); // efface la pil

É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(o Pile); // efface la pil

É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.

Conseillé: