Maison  >  Article  >  développement back-end  >  Utiliser le langage C pour expliquer la suppression d'éléments dans la file d'attente

Utiliser le langage C pour expliquer la suppression d'éléments dans la file d'attente

王林
王林avant
2023-08-28 09:45:151012parcourir

Une structure de données est un ensemble de données organisées de manière structurée. Il est divisé en deux types comme mentionné ci-dessous -

  • Structure de données linéaire - Les données sont organisées de manière linéaire. Par exemple, des tableaux, des structures, des piles, des files d'attente et des listes chaînées.

  • Structure de données non linéaire - Les données sont organisées de manière hiérarchique. Par exemple, des arbres, des graphiques, des ensembles, des tableaux.

Queue

C'est une structure de données linéaire, l'insertion se fait dans le backend et la suppression se fait dans le frontend.

Utiliser le langage C pour expliquer la suppression déléments dans la file dattente

L'ordre de la file d'attente est FIFO – premier entré, premier sorti

Opérations

  • Insérer – insérer un élément dans la file d'attente
  • Supprimer – supprimer un élément de la file d'attente.

Conditions

  • Dépassement de file d'attente - Essayez d'insérer un élément dans une file d'attente complète.

  • La file d'attente est en état de streaming - Tentative de suppression d'un élément de la file d'attente vide.

Algorithme

Vous trouverez ci-dessous l'algorithme d'insertion ( ) -

  • Vérifiez le débordement de file d'attente.
if (r==n)
printf ("Queue overflow")
  • Sinon, insérez un élément dans la file d'attente.
q[r] = item
r++
donne ci-dessous un algorithme pour

deletion ( )

    Vérifiez la file d'attente sous le flux.
  • if (f==r)
    printf ("Queue under flow")
      item = q[f]
      f++
    Vous trouverez ci-dessous l'algorithme de

    display ( ) -

      vérifie si la file d'attente est vide.
    • if (f==r)
      printf("Queue is empty")
      ul>
        Sinon, imprimez tous les éléments de 'f' à 'r'.
      • for(i=f; i<r; i++)
        printf ("%d", q[i]);
      Program

      Ce qui suit est le programme C pour supprimer des éléments de la file d'attente −

      #include <stdio.h>
      #define MAX 50
      void insert();
      int array[MAX];
      int rear = - 1;
      int front = - 1;
      main(){
         int add_item;
         int choice;
         while (1){
            printf("1.Insert element to queue </p><p>");
            printf("2.Delete an element from queue</p><p>");
            printf("3.Display elements of queue </p><p>");
            printf("4.Quit </p><p>");
            printf("Enter your choice : ");
            scanf("%d", &choice);
            switch (choice){
               case 1:
                  insert();
               break;
               case 2:
                  delete();
               case 3:
                  display();
               break;
               case 4:
                  exit(1);
               default:
               printf("Wrong choice </p><p>");
            }
         }
      }
      void insert(){
         int add_item;
         if (rear == MAX - 1)
            printf("Queue Overflow </p><p>");
         else{
            if (front == - 1)
            /*If queue is initially empty */
            front = 0;
            printf("Inset the element in queue : ");
            scanf("%d", &add_item);
            rear = rear + 1;
            array[rear] = add_item;
         }
      }
      void display(){
         int i;
         if (front == - 1)
            printf("Queue is empty </p><p>");
         else{
            printf("Queue is : </p><p>");
            for (i = front; i <= rear; i++)
               printf("%d ", array[i]);
               printf("</p><p>");
         }
      }
      void delete(){
         if (front == - 1 || front > rear){
            printf("Queue Underflow </p><p>");
            return ;
         }
         else{
            printf("Element deleted from queue is : %d</p><p>",array[front]);
            front = front + 1;
         }
      }
      Output

      Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant -

      1.Insert element to queue
      2.Delete an element from queue
      3.Display elements of queue
      4.Quit
      Enter your choice: 1
      Inset the element in queue: 12
      1.Insert element to queue
      2.Delete an element from queue
      3.Display elements of queue
      4.Quit
      Enter your choice: 1
      Inset the element in queue: 23
      1.Insert element to queue
      2.Delete an element from queue
      3.Display elements of queue
      4.Quit
      Enter your choice: 1
      Inset the element in queue: 34
      1.Insert element to queue
      2.Delete an element from queue
      3.Display elements of queue
      4.Quit
      Enter your choice: 2
      Element deleted from queue is: 12
      Queue is:
      23 34
      1.Insert element to queue
      2.Delete an element from queue
      3.Display elements of queue
      4.Quit
      Enter your choice: 2
      Element deleted from queue is: 23
      Queue is:
      34
      1.Insert element to queue
      2.Delete an element from queue
      3.Display elements of queue
      4.Quit
      Enter your choice: 4

    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:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer