Quellcode für zirkuläre Warteschlangen mit Arrays und Zeigern in C++ Können Sie helfen?

3 Antworten


  • Array
    1- Array weist automatisch Speicherplatz zu
    2- Es kann nicht in der Größe geändert werden
    3- Es kann nicht neu zugewiesen werden
    4- sizeof (Arrayname) gibt die Anzahl von Bytes an, die vom Array belegt werden.
    Pointer
    1-Explizit zugewiesen, um auf einen zugewiesenen Platz zu zeigen.
    2-Die Größe kann mit realloc() geändert werden.
    3-Zeiger können neu zugewiesen werden.
    4-sizeof (p) gibt die Anzahl der Bytes zurück, die verwendet werden, um die Zeigervariable p zu speichern.

    für weitere Informationen zu diesem Besuch

  • /* zirkuläres Queue-Programm mit Zeiger*/
    /* jeder Fall wird getestet und im Programm angezeigt*/
    #include<iostream>
    using namespace std;
    struct node
    {
     int data;
     Knoten *Link;
    };
    class zirque
    {
    privat : Knoten *vorne,*hinten;
        int-Zählung;
    öffentlich: Cirque();
        void push(int n);
        Leere pop();
        Leere Anzeige();
        ~Kirsch();
    };
    Cirque:: Cirque ()
    {
     vorne = hinten = NULL;
     zählen = 0;
    }
    Leerer Kreis::push(int n)
    {
     Knoten *temp;
     temp=neuer Knoten;
     if(temp==NULL)
     {
      cout<<"Speicher ist kleiner";
      Rückkehr;
     }
     temp->data=n;
     if (vorne   = = NULL)
     {
    vorne = hinten = temp;
     }
     else
     {
     hinten->link=temp;
     hinten=hinten->link;
     }
     hinten->link=vorne;
     zählen++;
     
    }
    void Cirque::pop()
    {
     if(front==NULL)
     {
      cout<<"ciccular Queue ist leer";
      Rückkehr;
     }
     Knoten *temp;
     temp=vorne;
     cout<<endl<<"gelöschtes Element ist"<<front->data;
     if(count>0)
     front=temp->link;
     hinten->link=vorne;
     zählen--;
     temp löschen;
    }
    void Cirque::display()
    {
     if(front==NULL)
     {
      cout<<endl<<"Warteschlange ist leer";
      Rückkehr;
     }
     int local = zählen;
     Knoten *temp;
     temp=vorne;
     cout<<endl<<"Warteschlangenelemente sind ";
     while(local)
     {
      cout<<" "<<temp->data;
      temp=temp->link;
      lokal--;
     }
    }
    cirque::~cirque()
    {
     if(front==NULL)
     {
      cout<<endl<<"kein Speicher belegt";
      Rückkehr;
     }
     Knoten *temp;
     int n = 0;
     while(vorne->link!=hinten->link)
     {
      temp=vorne;
      front=front->link;
      temp löschen;
      cout<<endl<<++n<<" "<<"gelöscht";
     }
    }
    int main ()
    {
     Cirque q;
     q.drücken(1);
     q.display();
     q.drücken(2);
     q.display();
     q.drücken(3);
     q.display();
     Q. drücken (4);
     q.display();
     q.pop();
     q.pop();
     0 zurückgeben;
    }
     
    /*zweites Programm mit Array*/
    #include<iostream>
    using namespace std;
    #define MAX 7 /*für Array-Größe*/
    class zirq
    {
    private:int arr[MAX];
      int vorne, hinten, zählen; /*zählen, um die Nummer von ele zu kennen. Im Array vorhanden.*/
    public:
     cirq();
     void push(int n);
     Leere pop();
     Leere Anzeige();
     ~zirq();
    };
    Cirq:: Cirq ()
    {
     vorne = hinten =-1;
     zählen = 0;
    }
    Void Cirq:: Push (int n)
    {
     if (count < MAX)
     {
      if (front ==-1) 
      {
       vorne = hinten = 0;
      }
     else if(rear==MAX-1) /* wenn hinten an der maximalen Position ist, dann bringe es in den Startbereich*/
       hinten=0;
      sonst
       hinten++;
      arr[hinten]=n;
      zählen++;
     }
     else
     {
      cout<<endl<<"Warteschlange ist voll, jetzt nicht betreten";
     }
    }
    void circ::pop()
    {
     if(count>0)
     {
      cout<<endl<<"gelöschtes Element ist"<<arr[vorne];
      if(front==MAX-1) /* wenn front an der maximalen Position ist, dann bringe es in start*/
       front=0;
      sonst
       Vorderseite++;
      zählen--;
     }
     else
      cout<<endl<<"zirkuläre Warteschlange ist leer";
    }
    Leere cirq :: display ()
    {
     int local = zählen;
     int front1=vorne;
     if(local<0) /*wenn kein Element in quque vorhanden ist*/
     {
      cout<<endl<<"zirkulare Warteschlange ist leer";
     }
     else
     {
      cout<<endl<<"kreisförmige Warteschlangenelemente sind: ";
      while(local)
      {
       cout<<endl<<arr[front1];
       if(front1==MAX-1) /* wenn Front an der maximalen Position ist, dann bringe es in den Anfang*/
        front1=0;
       sonst
        front1++;
       lokal--;
      }
     }
    }
    cirq::~cirq()
    {
    }
    int main()
    {
     cirq q;
     q.drücken(1);
     q.drücken(2);
     q.drücken(3);
     q.drücken(4);
     q.drücken(5);
     q.drücken(6);
     q.drücken(7);
     q.display();
     q.pop();
     q.display();
     q.drücken(8);
     q.display();
     q.drücken(9);
     q.display();
     0 zurückgeben;
    }
     

     

     
  • /* Programm einer zirkulären Warteschlange mit Array in C*/
    # include
    #include
    # define MAX 5

    int cqueue_arr[MAX];
    int vorne = -1;
    int hinten = -1;

    main()
    {
    int-Wahl;
    while(1)
    {
    printf("1.Insertn");
    printf("2.Deleten");
    printf("3.Displayn");
    printf("4.Quitn");
    printf("Geben Sie Ihre Wahl ein: ");
    scanf("%d",&choice);

    Schalter (Wahl)
    {
    Fall 1:
    Einfügen ();
    brechen;
    Fall 2:
    Del();
    brechen;
    Fall 3:
    Anzeige();
    brechen;
    Fall 4:
    Ausgang (1);
    default:
    Printf("Falsche Wahl");
    }/*Ende des Schalters*/
    }/*Ende von while */
    }/*Ende von main()*/

    insert()
    {
    int Added_item;
    if((vorne == 0 && hinten == MAX-1) || (vorne == hinten+1))
    {
    printf("Warteschlangenüberlauf n");
    Rückkehr;
    }
    if (front == -1) /*Wenn Warteschlange leer ist */
    {
    front = 0;
    hinten = 0;
    }
    else
    if(rear == MAX-1)/*rear ist an der letzten Position der Warteschlange */
    Rear = 0;
    sonst
    hinten = hinten+1;
    printf("Geben Sie das Element zum Einfügen in die Warteschlange ein: ");
    scanf("%d", &added_item);
    cqueue_arr[hinten] = hinzugefügtes_Element ;
    }/*Ende von insert()*/

    del()
    {
    if (front == -1)
    {
    printf("Queue Underflown");
    Rückkehr ;
    }
    printf("Element aus Warteschlange gelöscht ist: %dn",cqueue_arr[front]);
    if(front == Rear) /* Queue hat nur ein Element */
    {
    front = -1;
    hinten=-1;
    }
    sonst
    if (vorne == MAX-1)
    vorn = 0;
    sonst
    vorne = vorne+1;
    }/*Ende von del() */

    display()
    {
    int front_pos = vorne,rear_pos = hinten;
    if(front == -1)
    {
    printf("Warteschlange ist leer");
    Rückkehr;
    }
    printf("Warteschlangenelemente :n");
    if(front_pos

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear