Hola a todos, por favor quien puede ayudarme en c++:
Tengo 2 Colas estáticas las cuales una contiene elementos pares y otra impares y me piden colocar los elementos de las 2 colas en 1 tercera, pero de forma descendente.
Te muestro el ejemplo hasta donde llegué
#include<iostream.h>
#include<conio.h>
#define MAX 5
#include<stdlib.h>
struct numeros
{
int num;
};
struct cola
{
numeros vector[MAX];
numeros *psacar;
numeros *pponer;
};
void inicializarcola(cola* aux) //defino puntero aux
{
aux->psacar=aux->pponer=&aux->vector[0]; //&aux->vector[0]=aux->vector
}
////////////////////////////////////////////
int colavacia(cola aux)
{
return (aux.pponer==aux.psacar);
}
////////////////////////////////////////////
int colallena(cola *aux) //paso por puntero
{
if (aux->pponer+1==aux->psacar) // con flecha
return 1;
else
if (aux->pponer+1==aux->vector+MAX&&aux->psacar==aux->vector)
return 1;
return 0;
}
////////////////////////////////////////////
numeros *primero(cola aux)
{
return (aux.psacar);
}
////////////////////////////////////////////
void acolar(cola *aux,numeros dato)
{
*(aux->pponer)=dato;//contenido de persona
(aux->pponer)++;
if(aux->pponer==aux->vector+MAX)
aux->pponer=aux->vector;
}
////////////////////////////////////////////
void desacolar(cola *aux)
{
(aux->psacar)++;
if (aux->psacar==aux->vector+MAX)
aux->psacar=aux->vector;
}
////////////////////////////////////////////
int main (void)
{ clrscr();
cola z;
cola x;
cola p;
numeros dato,aux;
inicializarcola(&z);
inicializarcola(&x);
inicializarcola(&p);
cout<<"Ingrese N£meros: ";
cin>>dato.num;
while((dato.num)&&(!colallena(&z)&&(!colallena(&x)))) /////
{
if((dato.num%2)==0)
acolar(&z,dato);
if((dato.num%2)!=0)
acolar(&x,dato);
cout<<"Ingrese N£meros: ";
cin>>dato.num;
}
while(!colavacia(z))
{
dato=*primero(z);
cout<<endl<<"N£meros Par: "<<dato.num;
desacolar(&z);
//acolar(&p,dato);
}
while(!colavacia(x))
{
dato=*primero(x);
cout<<endl<<"N£meros Impar: "<<dato.num;
desacolar(&x);
acolar(&p,dato);
}
cout<<endl;
while(!colavacia(p))
{
dato=*primero(p);
cout<<endl<<"Descendente Son:"<<dato.num;
desacolar(&p);
}
cout<<endl;
if(colavacia(z)&&colavacia(x))
cout<<endl<<"Vaci‚ Ambas Colas"<<endl;
return 0;
}
Bueno esto realiza todo, pero no se como pasar los datos de ambas colas en el ejemplo de arriba paso solamente los de la cola impar.
Y por favor alguna idea de el orden descendente .
Gracias