¿El progtwig controlado por menús realiza la siguiente operación de cola utilizando la cola en cola, quita la cola, cuenta el número de elementos y se muestra en c ++?

¿Necesito crear un progtwig en C ++ para que el progtwig controlado por menú realice la siguiente operación de cola utilizando la cola en cola, la cola de espera, cuente la cantidad de elementos y muestre en c ++? ¿Cómo hacer éste? soy muy débil en c ++ ¿alguien puede guiarme o ayudarme o vincularme a un progtwig completo para estudiarlo y entenderlo? Lo intenté pero no pude hacerlo, así que realmente necesito ayuda

¿Esto es correcto o no?

#include #include void push(int st[],int data,int &top); //declaring a push class void disp(int st[],int &top); //declaring display class int pop(int st[],int &top); //declaring a pop class int flg=0; int top=-1,tos=-1; int st[50]; void push(int st[],int data,int &top) //push { if(top==50-1) flg=0; else { flg=1; top++; st[top]=data; } } int pop(int st[],int &top) //pop { int pe; if(top==-1) { pe=0; flg=0; } else { flg=1; pe=st[top]; top--; } return(pe); } void disp(int st[],int &top) //display { int i; if(top==-1) { cout<=0;i--) cout<<"\t"<<st[i]; } } void main() { int dt,opt; // declare varible int q=0; clrscr(); cout<<"\t\t\tStack operations"; cout<<"\n\n\tMain Menu........."; cout<<"\n\n1.Push"; cout<<"\n\n2.Pop"; cout<<"\n\n3.Exit"; cout<<"\n\n4.display"; do // useing do while for to make choice and select any options { cout<>opt; switch(opt) { case 1: cout<>dt; push(st,dt,tos); if(flg==1) { cout<<"the push is done"; if(tos==50-1) cout<<"\nStack is Now Full"; } else cout<<"\nStack Overflow Insertion Not Possible"; break; case 2: dt=pop(st,tos); if(flg==1) { cout<<"\n\tData Deleted From the Stack is:"<<dt; cout<<"\n \t pop is done"; } else cout<<"\nStack Empty,Deletio Not Possible:"; break; case 3: q=1; break; default: cout<<"\nWrong Choice Enter 1-3 Only"; case 4: disp(st,tos); break; } } while(q!=1); } 

Hay una colección de colas en la biblioteca STL que proporciona toda la funcionalidad requerida anteriormente para usted, si por alguna razón no tiene permiso para usar esto, sugiero que la siguiente lógica podría ser útil

  • cuando un elemento se saca de la parte delantera de la cola, todos los demás elementos deben copiarse hacia abajo 1 elemento, use un bucle for para esto

P.ej

 for (int index = 1; index < arraySize; index++) { if (item[index] == -1) { item[index-1] = -1; break; } item[index - 1] = item[index]; } 
  • cuando se elimina un elemento, todos los elementos que siguen a ese elemento en la cola deben moverse hacia abajo 1 espacio, encontrar el índice del elemento que se está eliminando y usar un bucle for

P.ej

 for (int index = deletedItemIndex; index < arraySize; index++) { if (item[index] == -1) break; item[index] = item[index + 1]; } 
  • cuando se agrega un elemento a la cola, simplemente se coloca al final de la cola, pero no necesariamente al final de la matriz (tal vez inicialice todos los elementos de la matriz con -1 para comenzar, de esa manera puede probar fácilmente si está en el final de la cola)