Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Zerus- en 30 Septiembre 2010, 03:28 am



Título: problema con extraccion usando colas
Publicado por: Zerus- en 30 Septiembre 2010, 03:28 am
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

Código:
#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??










Título: Re: problema con extraccion usando colas
Publicado por: Shell Root en 30 Septiembre 2010, 04:09 am
Un poco más organizado,
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.  int sContador  = 0;
  7.  int sArray[5]  = {1,2,3,4,5};
  8.  int sOpcion    =  0;
  9.  int i          =  0;
  10.  int z          =  0;
  11.  
  12.  cout << "MENU" << endl;
  13.  cout << "  1. Insertar datos" << endl;
  14.  cout << "  2. Mostrar datos" << endl;
  15.  cout << "  3. Extracción de datos" << endl;
  16.  cout << "  4. Salir" << endl;
  17.  
  18.  cin>>sOpcion;
  19.  
  20.  switch (sOpcion){
  21.    case 1:
  22.      cout << "Insertar datos" << endl;
  23.      break;
  24.    case 2:
  25.      cout << "Mostrar datos" << endl;
  26.      for(i=0; i<5; i++){
  27.        cout << "  "<< sArray[i] << endl;
  28.      }
  29.      break;
  30.    case 3:
  31.      cout << "Extracción de datos" << endl;
  32.      break;
  33.    case 4:
  34.      cout << "Salir" << endl;
  35.      break;
  36.    default:
  37.      cout << "La opción no existe" << endl;
  38.  }
  39.  return 0;
  40. }

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

PD: El main, esta esperando que le devuelvas un entero. Así que antes del último cierre de llaves, agregale,
Código
  1.  return 0;
  2. }


Título: Re: problema con extraccion usando colas
Publicado por: Zerus- en 1 Octubre 2010, 00:21 am
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^^.