• Sábado 14 de Diciembre de 2024, 22:47

Autor Tema:  Re: Colas estáticas  (Leído 5109 veces)

arielrro

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Colas estáticas
« en: Martes 19 de Agosto de 2003, 01:08 »
0
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 :good:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Colas estáticas
« Respuesta #1 en: Viernes 22 de Agosto de 2003, 15:09 »
0
Podrias ser mas especifico con el problema que tienes?,
Teoricamente lo unica que debes hacer es crear un tercer array y mediante un ciclo realizar la insercion de las otras dos colas de manera alterna.

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

arielrro

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Colas estáticas
« Respuesta #2 en: Sábado 23 de Agosto de 2003, 20:01 »
0
Juank: Lo que no puedo hacer es un ordenamiento descendente de ambas colas en una tercera. Lo cual tendría que utilizar una aux. decis.
no tendrías un ejemplo. Ya que soy nuevo en esto . Desde ya muchas gracias por tu interes Saludos Ariel:suerte:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Colas estáticas
« Respuesta #3 en: Lunes 25 de Agosto de 2003, 13:57 »
0
tengo uno, o mejor varios, pero son estructuras dinamicas, por lño cual te pegarias una enredada de aqui el cielo....
en todo caso  te adjunto esto jjajabuena suerte.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

cyber

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Colas estáticas
« Respuesta #4 en: Lunes 25 de Agosto de 2003, 20:32 »
0
Hi:
He estado revisando tu problema y te voy a hacer algun comentario:
1.- Creo que a la ultima cola le debes dar un tratamiento diferente a las dos primeras en cuanto a la cantidad de elementos. En tu caso van a tener la misma cantidad de elementos las tres colas y recuerda que en la ultima vas a tener todos los #, pares e impares.
2.-En la medida que colocas un numero (par o impar) puedes irlo colocando en la ultima cola y haces una comparacion con el cada ves que entres otro (para ordenarlos de forma descendente como quieres)
3.-Creo que debes revisar algunos errorer que tiene el codigo que publicaste: xEj cuando entras un numero par de ultimo, no aparece en la cola de #s pares

El documento que te brinda juank te puede ayudar bastante, no obstante yo voy a tratar de echarte otra mano

Best Regards
cyber