Código fuente para cola circular usando matrices y punteros en C ++ ¿Puede ayudarme?

3 Respuestas


  • Matriz
    1- Matriz asigna espacio automáticamente
    2- No se puede cambiar de tamaño
    3- No se puede reasignar
    4- sizeof (nombre de matriz) da el número de bytes ocupados por la matriz.
    Puntero
    1: asignado explícitamente para apuntar a un espacio asignado.
    2-Se puede dimensionar usando realloc ()
    Se pueden reasignar 3 punteros.
    4-sizeof (p) devuelve el número de bytes utilizados para almacenar la variable de puntero p.

    para obtener más información sobre esta visita

  • / * programa de cola circular usando puntero * /
    / * cada caso es probado y mostrado en el programa * /
    #include <iostream>
    usando el espacio de nombres std;
    struct nodo
    {
     int datos;
     nodo * enlace;
    };
    class cirque
    {
    privado: nodo * delantero, * trasero;
        int count;
    público: cirque ();
        empuje vacío (int n);
        pop vacío ();
        visualización vacía ();
        ~ circo ();
    };
    cirque :: cirque ()
    {
     delantero = trasero = NULL;
     cuenta = 0;
    }
    void cirque :: empujar (int n)
    {
     nodo * temp;
     temp = nuevo nodo;
     if (temp == NULL)
     {
      cout << "la memoria es menor";
      regreso;
     }
     temp-> data = n;
     if (delantero == NULL)
     {
      delantero = trasero = temp;
     }
     else
     {
     trasero-> enlace = temp;
     trasero = trasero-> enlace;
     }
     trasero-> enlace = delantero;
     contar ++;
     
    }
    void cirque :: pop ()
    {
     if (front == NULL)
     {
      cout << "la cola ciccular está vacía";
      regreso;
     }
     nodo * temp;
     temp = frente;
     cout << endl << "el elemento eliminado es" <<frente-> datos;
     if (cuenta> 0)
     front = temp-> link;
     trasero-> enlace = delantero;
     contar--;
     eliminar temp;
    }
    void cirque :: display ()
    {
     if (front == NULL)
     {
      cout << endl << "la cola está vacía";
      regreso;
     }
     int local = cuenta;
     nodo * temp;
     temp = frente;
     cout << endl << "los elementos de la cola son";
     while (local)
     {
      cout << "" <<temp-> datos;
      temp = temp-> enlace;
      local--;
     }
    }
    cirque :: ~ cirque ()
    {
     if (front == NULL)
     {
      cout << endl << "no se usa memoria";
      regreso;
     }
     nodo * temp;
     int n = 0;
     while (delantero-> enlace! = trasero-> enlace)
     {
      temp = delantero;
      frente = frente-> enlace;
      eliminar temp;
      cout << endl << ++ n << "" << "eliminado";
     }
    }
    int main ()
    {
     cirque q;
     q.push (1);
     q.display ();
     q.push (2);
     q.display ();
     q.push (3);
     q.display ();
     q. empujar (4);
     q.display ();
     q.pop ();
     q.pop ();
     return 0;
    }
     
    / * segundo programa usando array * /
    #include <iostream>
    usando el espacio de nombres std;
    #define MAX 7 / * para el tamaño de la matriz * /
    class cirq
    {
    private: int arr [MAX];
      int delantero, trasero, recuento; / * contar para conocer el no de ele. Presente en matriz. * /  Public
    :
    cirq ();
     empuje vacío (int n);
     pop vacío ();
     visualización vacía ();
     ~ cirq ();
    };
    cirq :: cirq ()
    {
     delantero = trasero = -1;
     cuenta = 0;
    }
    void cirq :: Push (int n)
    {
     if (count <MAX)
     {
      if (front == - 1) 
      {
       front = rear = 0;
      }
     else if (trasero == MAX-1) / * si el trasero está en la posición máxima entonces póngalo en el arranque * /
       trasero = 0;
      else
       trasero ++;
      arr [trasero] = n;
      contar ++;
     }
     else
     {
      cout << endl << "la cola está llena, no ingrese ahora";
     }
    }
    void cirq :: pop ()
    {
     if (count> 0)
     {
      cout << endl << "el elemento eliminado es" << arr [front];
      if (front == MAX-1) / * si el front está en la posición máxima entonces tráelo en el inicio * /
       front = 0;
      else
       front ++;
      contar--;
     }
     else
      cout << endl << "la cola circular está vacía";
    }
    void cirq :: display ()
    {
     int local = count;
     int front1 = front;
     if (local <0) / * si no hay ningún elemento en quque * /
     {
      cout << endl << "la cola circular está vacía";
     }
     else
     {
      cout << endl << "Los elementos de la cola circular son:";
      while (local)
      {
       cout << endl << arr [front1];
       if (front1 == MAX-1) / * si el frente está en la posición máxima, entonces tráelo en el inicio * /
        front1 = 0;
       else
        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.display ();
     q.pop ();
     q.display ();
     q.push (8);
     q.display ();
     q.push (9);
     q.display ();
     return 0;
    }
     

     

     
  • / * Programa de cola circular usando arreglo en C * /
    # include
    #include
    # define MAX 5

    int cqueue_arr [MAX];
    int front = -1;
    int trasero = -1;

    main ()
    {
    elección int;
    while (1)
    {
    printf ("1.Insertn");
    printf ("2.Eliminar");
    printf ("3.Displayn");
    printf ("4.Quitn");
    printf ("Ingrese su elección:");
    scanf ("% d", & opción);

    cambiar (elección)
    {
    caso 1:
    Insertar ();
    rotura;
    caso 2:
    Del ();
    rotura;
    caso 3:
    Display ();
    rotura;
    caso 4:
    Salida (1);
    predeterminado:
    Printf ("Elección incorrecta");
    } / * Fin de cambio * /
    } / * Fin de while * /
    } / * Fin de main () * /

    insert ()
    {
    int added_item;
    if ((delantero == 0 && trasero == MAX-1) || (delantero == trasero + 1))
    {
    printf ("Desbordamiento de cola n");
    regreso;
    }
    if (front == -1) / * Si la cola está vacía * /
    {
    front = 0;
    trasero = 0;
    }
    else
    if (trasero == MAX-1) / * trasero está en la última posición de la cola * /
    trasero = 0;
    de lo contrario,
    trasero = trasero + 1;
    printf ("Ingrese el elemento para insertarlo en la cola:");
    scanf ("% d", & elemento_añadido);
    cqueue_arr [trasero] = elemento_añadido;
    } / * Fin de insert () * /

    del ()
    {
    if (front == -1)
    {
    printf ("Queue Underflown");
    regreso ;
    }
    printf ("El elemento eliminado de la cola es:% dn", cqueue_arr [frente]);
    if (front == rear) / * la cola tiene un solo elemento * /
    {
    front = -1;
    trasero = -1;
    }
    else
    if (frente == MAX-1)
    frente = 0;
    de lo contrario,
    frente = frente + 1;
    } / * Fin de del () * /

    display ()
    {
    int front_pos = front, rear_pos = rear;
    if (front == -1)
    {
    printf ("La cola está vacían");
    regreso;
    }
    printf ("Elementos de la cola: n");
    si (front_pos

Escribe tu respuesta

Tu respuesta aparecerá después de la moderación