Maison > développement back-end > C++ > 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

王林
Libérer: 2023-08-28 09:45:15
avant
1110 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 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")
Copier après la connexion
  • Sinon, insérez un élément dans la file d'attente.
q[r] = item
r++
Copier après la connexion
donne ci-dessous un algorithme pour

deletion ( )

    Vérifiez la file d'attente sous le flux.
  • if (f==r)
    printf ("Queue under flow")
    Copier après la connexion
      < Sinon, supprimez un élément de la file d'attente.
    item = q[f]
    f++
    Copier après la connexion
Vous trouverez ci-dessous l'algorithme de

display ( ) -

    vérifie si la file d'attente est vide.
  • if (f==r)
    printf("Queue is empty")
    Copier après la connexion
      Sinon, imprimez tous les éléments de 'f' à 'r'.
    • for(i=f; i<r; i++)
      printf ("%d", q[i]);
      Copier après la connexion
    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;
       }
    }
    Copier après la connexion
    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
    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