Maison > développement back-end > C++ > Expliquer le concept de pile en langage C

Expliquer le concept de pile en langage C

王林
Libérer: 2023-09-15 16:01:01
avant
822 Les gens l'ont consulté

Une structure de données est un ensemble de données organisées de manière structurée. Il est divisé en deux types, à savoir la structure de données linéaire et la structure de données non linéaire.

Expliquer le concept de pile en langage C

Structure des données linéaires - Ici, les données sont organisées de manière linéaire.

Par exemple : tableau, structure, pile, file d'attente, liste chaînée.

Structure de données non linéaire - Ici, les données sont organisées de manière hiérarchique.

Par exemple - arbres, graphiques, ensembles, tableaux.

Pile en langage C

Il s'agit d'une structure de données linéaire, les données ne peuvent être insérées et supprimées qu'à une extrémité.

Opération

  • Push - Insérez un élément dans la pile.
  • Pop - Supprime un élément de la pile.

Expliquer le concept de pile en langage C

Expliquer le concept de pile en langage C

Expliquer le concept de pile en langage C

Expliquer le concept de pile en langage C

Expliquer le concept de pile en langage C

Expliquer le concept de pile en langage C

Deleted element = 50
Item = a [top]
top --
Copier après la connexion
  • pop(),pop(),pop(), pop()
Deleted element = 40
Deleted element=30
Deleted element=20
Deleted element =10
Copier après la connexion
  • Pop ( )

Stack Overflow

Conditions

  • Stack Overflow - Essayez d'insérer un élément dans la pile complète.

  • Stack Underflow - Tentative de suppression d'un élément d'une pile vide.

Algorithme Push ( ), Pop ( ), Display ( )

L'algorithme correspondant est le suivant :

Push ( )

  • Vérifiez si la pile déborde.
if (top = = n-1)
printf("stack over flow”);
Copier après la connexion
  • Sinon, insérez un élément dans la pile.
top ++
a[top] = item
Copier après la connexion

Pop ( )

  • Vérifiez le sous-dépassement de la pile.
if ( top = = -1)
printf( "stack under flow”);
Copier après la connexion
  • Sinon, supprimez l'élément de la pile.
item = a[top]
top --
Copier après la connexion

Affichage ( )

  • Vérifiez le flux de la pile.
if (top == -1)
printf ("stack is empty”);
Copier après la connexion
  • Sinon, suivez l'algorithme mentionné ci-dessous −
for (i=0; i<top; i++)
printf ("%d&rdquo;, a[i]);
Copier après la connexion

Exemple

Voici le programme C pour implémenter la pile à l'aide de tableaux :

#include<stdio.h>
#include <conio.h>
int top = -1, n,a[100];
main ( ){
   int ch;
   void pop ( );
   void display ( );
   clrscr ( );
   printf ("enter the size of the stack&rdquo;);
   scanf ("%d&rdquo;, &n);
   printf("stack implementation</p><p>&rdquo;);
   printf ("1. push </p><p>&rdquo;);
   printf ("2. Pop </p><p>&rdquo;);
   printf ("3. exit </p><p>&rdquo;);
   do{
      printf ( "enter ur choice&rdquo;);
      scanf ("%d&rdquo;, &ch);
      switch (ch){
         case 1 : push ( );
         display ( );
         break;
      case 2 : push ( );
         display ( );
         break;
      case 3 : exit
   }
   }while (ch>=1 | | ch<= 3);
   getch ( );
}
void push ( ){
   int item;
   if (top = = n-1)
      printf ( "stack over flow&rdquo;)
   else{
      printf("enter an element for insertion&rdquo;)
      scanf ("%d&rdquo;, &item);
      top ++;
      a[top] = item;
   }
}
void pop ( ){
   int item;
   if (top = = -1);
      printf ( "stack under flow&rdquo;);
   else{
      item = a[top];
      top --;
      printf("deleted element = %d&rdquo;, item);
   }
}
void display ( ){
   int i;
   if (top = = -1)
      printf ( "stack is empty&rdquo;);
   else{
      printf("contents of the stack are&rdquo;);
      for (i=0; i<top; i++)
         printf ("%d \t&rdquo;, a[i]);
   }
}
Copier après la connexion

Output

Lorsque le programme ci-dessus est exécuté, il produit ce qui suit Résultat −

enter the size of the stack = 5 [given by user]
Stack implementation
1. Push 2. Pop 3. exit
Enter ur choice : 1 [given by user]
Enter an element for insertion : 10
Contents of the stack : 10
Enter ur choice : 1
Enter an element for insertion : 2
Contents of the stack : 10 20
Enter ur choice : 2
Deleted element = 20
Contents of the stack are : 10
Enter ur choice : 2
Deleted element : 10
Contents of the stack are : stack is empty
Enter ur choice : 2
Stack underflow.
Enter ur choice : 1
Enter an element for insertion : 30
Contents of the stack are : 30
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal