problema con extraccion usando colas

Iniciado por Zerus-, 30 Septiembre 2010, 03:28 AM

0 Miembros y 1 Visitante están viendo este tema.

Zerus-

pues miren ya busque en intenet y no encuentro nada solo mas ejercisios a hacer sin sus soluciones ymi problema es hacer la extraccion usando colas la logica usando pilas ya me la se porque hizimos el siguiente programa usando pilas pero ahora lo quiere con colas y ala hora de extraer es diferente
como ya saben en pilas es ultimo en entrar primero en salir
5                                              (espacio vacio)                                     
4                                           4
3           estraigo                    3   
2                          me queda  2
1                                            1

en colas es
primero en entrar primero en salir
5                                        (espacio vacio)
4            estraigo                 5
3                   me queda        4
2                                          3
1                                           2
se recorre el arreglo mi problema es hacer esa parte de recorrido osea
en pilas mi  codigo es

i=i-1;    ----> denotando la pocion ultima del contador i
for (z=i;z>=0;z--){
cout<<ar1[z];
cout<<"\n";
}
-----> me muestra el arreglo sin la ultima pocion hace un borrado logico


mi codigo

#include<conio.h>
#include<stdlib.h>
#include<iostream.h>
int main(){
int op,ar[5],i,a,z;
do{
cout<<"\t\t\t\tmenu\n";
cout<<"\ninseccion de datos..1";
cout<<"\nmustra de datos.....2";
cout<<"\nextraccion de datos.3";
cout<<"\nsalir...............4";
cout<<"\n------> ";
cin>>op;
switch (op){
case 1:
if(i>=5){
cout<<"\ndesbordamiento pila llena\n";
}
else{
cout<<"\ndame un numero\n";
cin>>ar[i];
i=i+1;
}
break;
case 2:
if (i<=0){
cout<<"\lapila sta vacia por favor ingrese\n";
}
else{
a=i-1;
for(z=0;z<=a;z++){
cout<<ar[z];
cout<<"\n";
}
}
break;
case 3:
if (i<=0){
cout<<"\nel arreglo esta vacio por favor inserte\n";
}
//********** denotando que esta parte la hace como pilas************
else{
cout<<"\nnumeros restantes en el arreglo\n";
i=i-1;
for (z=i;z>=0;z--){
cout<<ar[z];
cout<<"\n";
}
}

break;
case 4:
cout<<"\n\t\t\tfin del programa^^";
getch();
break;
default:cout<<"\nesta opcion no es valida\n";
}
}while(op!=4);
}


alguna idea con la que me puedan apoyar??








programador en proceso.....=w=

Shell Root

#1
Un poco más organizado,
Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int main(){
 int sContador  = 0;
 int sArray[5]  = {1,2,3,4,5};
 int sOpcion    =  0;
 int i          =  0;
 int z          =  0;

 cout << "MENU" << endl;
 cout << "  1. Insertar datos" << endl;
 cout << "  2. Mostrar datos" << endl;
 cout << "  3. Extracción de datos" << endl;
 cout << "  4. Salir" << endl;

 cin>>sOpcion;

 switch (sOpcion){
   case 1:
     cout << "Insertar datos" << endl;
     break;
   case 2:
     cout << "Mostrar datos" << endl;
     for(i=0; i<5; i++){
       cout << "  "<< sArray[i] << endl;
     }
     break;
   case 3:
     cout << "Extracción de datos" << endl;
     break;
   case 4:
     cout << "Salir" << endl;
     break;
   default:
     cout << "La opción no existe" << endl;
 }
 return 0;
}


Caso 3, En la linea número 6 y 7, no se que tratas de hacer.
Código (cpp,7) [Seleccionar]
case 3:
 if (i <= 0){
   cout<<"\nEl arreglo esta vacío por favor inserte\n";
 }else{
   cout<<"\nNúmeros restantes en el arreglo\n";
   i=i-1;
   for (z=i;z>=0;z--){
     cout<<ar[z];
     cout<<"\n";
   }
 }


PD: El main, esta esperando que le devuelvas un entero. Así que antes del último cierre de llaves, agregale,
Código (cpp) [Seleccionar]
 return 0;
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Zerus-

en el caso 3 lo que requiero es hacer una extraccion osea que me elimine el primer dato de la cola y que los demas se recorran y asi sucesivamente
***
gracias por la ayuda^^.
programador en proceso.....=w=