Code source pour la file d'attente circulaire utilisant des tableaux et des pointeurs en C++ Pouvez-vous aider ?

3 Réponses


  • Tableau
    1- Le tableau alloue automatiquement de l'espace
    2- Il ne peut pas être redimensionné
    3- Il ne peut pas être réaffecté
    4- sizeof (arrayname) donne le nombre d'octets occupés par le tableau.
    Pointeur
    1-Affecté explicitement pour pointer vers un espace alloué.
    2-Il peut être dimensionné à l'aide de realloc()
    3-pointeur peut être réaffecté.
    4-sizeof (p) renvoie le nombre d'octets utilisés pour stocker la variable pointeur p.

    pour plus d'infos sur cette visite

  • /* programme de file d'attente circulaire utilisant un pointeur*/
    /* chaque cas est testé et affiché dans le programme*/
    #include<iostream>
    utilisant l'espace de noms std ;
    struct node
    {
     int data;
     nœud *lien ;
    } ;
    classe cirque
    {
    privé : Noeud *avant,*arrière;
        nombre entier ;
    public : cirque();
        void push(int n);
        void pop();
        affichage vide();
        ~cirque();
    } ;
    cirque::cirque()
    {
     avant=arrière=NULL;
     compte=0 ;
    }
    cirque vide::push(int n)
    {
     nœud *temp;
     temp=nouveau nœud ;
     if(temp==NULL)
     {
      cout<<"la mémoire est inférieure";
      revenir;
     }
     temp->données=n;
     if(avant==NULL)
     {
      avant=arrière=temp;
     }
     else
     {
     arrière->link=temp;
     arrière=arrière->lien ;
     }
     arrière->lien=avant;
     compte++ ;
     
    }
    void cirque::pop()
    {
     if(front==NULL)
     {
      cout<<"la file d'attente circulaire est vide";
      revenir;
     }
     nœud *temp;
     temp=front;
     cout<<endl<<"l'élément supprimé est"<<front->data;
     if(count>0)
     front=temp->link ;
     arrière->lien=avant ;
     compter--;
     supprimer la température ;
    }
    void cirque::display()
    {
     if(front==NULL)
     {
      cout<<endl<<"la file d'attente est vide";
      revenir;
     }
     int local = compte;
     nœud *temp;
     temp=front;
     cout<<endl<<"les éléments de file d'attente sont ";
     while(local)
     {
      cout<<" "<<temp->data;
      temp=temp->lien ;
      local--;
     }
    }
    cirque::~cirque()
    {
     if(front==NULL)
     {
      cout<<endl<<"pas de mémoire utilisée";
      revenir;
     }
     nœud *temp;
     entier n=0;
     while(front->link!=rear->link)
     {
      temp=front;
      front=front->lien ;
      supprimer la température ;
      cout<<endl<<++n<<" "<<"supprimé " ;
     }
    }
    int main()
    {
     cirque q;
     q.push(1);
     q.affichage();
     q.push(2);
     q.affichage();
     q.push(3);
     q.affichage();
     q. pousser(4) ;
     q.affichage();
     q.pop();
     q.pop();
     renvoie 0 ;
    }
     
    /*second programme utilisant un tableau*/
    #include<iostream>
    utilisant l'espace de noms std ;
    #define MAX 7 /*for array size*/
    class cirq
    {
    private:int arr[MAX];
      int avant, arrière, compte ; /*compte pour connaitre le no de ele. Présent dans le tableau.*/
    public:
     cirq();
     void push(int n);
     void pop();
     affichage vide();
     ~cirq();
    } ;
    cirq::cirq()
    {
     avant = arrière =-1;
     compte=0 ;
    }
    void cirq :: Push(int n)
    {
     if(count<MAX)
     {
      if(front ==-1) 
      {
       front=rear=0;
      }
     else if(rear==MAX-1) /* si l'arrière est en position maximum alors amenez-le au démarrage*/
       arrière=0;
      sinon
       arrière++;
      arr[arrière]=n;
      compte++ ;
     }
     else
     {
      cout<<endl<<"la file d'attente est pleine n'entrez pas maintenant";
     }
    }
    void cirq::pop()
    {
     if(count>0)
     {
      cout<<endl<<"l'élément supprimé est"<<arr[front];
      if(front==MAX-1) /* si le front est en position maximum alors amenez-le au démarrage*/
       front=0;
      sinon
       avant++;
      compter--;
     }
     else
      cout<<endl<<"la file d'attente circulaire est vide";
    }
    void cirq::display()
    {
     int local = count;
     int avant1=avant ;
     if(local<0) /*s'il n'y a pas d'élément dans quque*/
     {
      cout<<endl<<"la file d'attente circulaire est vide";
     }
     else
     {
      cout<<endl<<"les éléments de file d'attente circulaires sont : ";
      while(local)
      {
       cout<<endl<<arr[front1];
       if(front1==MAX-1) /* si le front est en position maximum alors amenez-le au démarrage*/
        front1=0;
       sinon
        front1++;
       local--;
      }
     }
    }
    cirq::~cirq()
    {
    }
    int main()
    {
     cirq q;
     q.push(1) ;
     q.push(2);
     q.push(3);
     q.push(4) ;
     q.push(5) ;
     q.push(6) ;
     q.push(7) ;
     q.affichage();
     q.pop();
     q.affichage();
     q.push(8) ;
     q.affichage();
     q.push(9) ;
     q.affichage();
     renvoie 0 ;
    }
     

     

     
  • /* Programme de file d'attente circulaire utilisant un tableau en C*/
    # include
    #include
    # define MAX 5

    int cqueue_arr[MAX];
    avant int = -1;
    arrière int = -1;

    main()
    {
    int choix;
    while(1)
    {
    printf("1.Insertn");
    printf("2.Supprimer");
    printf("3.Affichage");
    printf("4.Quitter");
    printf("Entrez votre choix : ");
    scanf("%d",&choix);

    switch(choix)
    {
    case 1 :
    Insert();
    Pause;
    cas 2 :
    Suppr();
    Pause;
    cas 3 :
     Affichage();
    Pause;
    cas 4 :
    sortie(1) ;
    par défaut :
    Printf("Mauvais choix");
    }/*Fin de switch*/
    }/*Fin de while */
    }/*Fin de main()*/

    insert()
    {
    int added_item;
    if((avant == 0 && arrière == MAX-1) || (avant == arrière+1))
    {
    printf("Queue Overflow n");
    revenir;
    }
    if (front == -1) /*Si la file d'attente est vide */
    {
    front = 0;
    arrière = 0;
    }
    else
    if(rear == MAX-1)/*rear est à la dernière position de la file d'attente */
    Rear = 0;
    sinon
    arrière = arrière+1;
    printf("Entrez l'élément à insérer dans la file d'attente : ");
    scanf("%d", &added_item);
    cqueue_arr[arrière] = élément_ajouté ;
    }/*Fin de l'insertion()*/

    del()
    {
    if (front == -1)
    {
    printf("Queue Underflown");
    revenir ;
    }
    printf("L'élément supprimé de la file d'attente est : %dn",cqueue_arr[front]);
    if(front == arrière) /* la file d'attente n'a qu'un seul élément */
    {
    front = -1;
    arrière=-1 ;
    }
    else
    if(front == MAX-1)
    front = 0;
    sinon
    avant = avant+1;
    }/*Fin de del() */

    display()
    {
    int front_pos = front,rear_pos = arrière;
    if(front == -1)
    {
    printf("La file d'attente est viden");
    revenir;
    }
    printf("Éléments de file d'attente :n");
    if( front_pos

Ecrivez votre réponse

Votre réponse apparaîtra après modération