Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda proyecto pilas y colas dinamicas

Estas en el tema de ayuda proyecto pilas y colas dinamicas en el foro de C/C++ en Foros del Web. necesito crear un cola dinamica y que cada elemento de una cola dinamica este enlazado a una pila y que esos elemento de la pila ...
  #1 (permalink)  
Antiguo 17/10/2009, 11:49
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
crear una cola dinamica de pilas dinamicas

necesito crear un cola dinamica y que cada elemento de una cola dinamica este enlazado a una pila y que esos elemento de la pila le correspondan unicamente al elemento de la cola al que estan asociados, estoy haciendo un programas de gradas y en las gradas insertas persona, las gradas serian la cola y los asiento las pilas, no puedo hacr quela pila le corresponda a solo un elemtno, al extraer de la pila, extrae todos los que haya insertado hasta el momento. el codigo es este

#include<stdio.h>
#include<conio.h>
#include<iostream>

using namespace std;

struct grada
{
int grad;
struct grada *sig;
struct pila *tope;
};

struct pila
{
int silla;
struct pila *ant;
};

void insgrada(struct grada **inicio,struct grada **fin,struct pila *tope)
{
struct grada *aux = NULL;
aux = (struct grada *) malloc ( sizeof(struct grada *));
if((*fin) == NULL )
{
aux->sig = NULL;
(*inicio) = (*fin) = aux;
}
else
{
aux->sig = NULL;
aux->tope = tope;
(*fin)->sig = aux;
(*fin) = aux;
}
cout << "Crea la grada numero?" << endl;
cin >> (*fin)->grad;
cout << "La grada numero " << (*fin)->grad << " ha sido creada" << endl;
}

void inspila(struct pila **tope,struct grada **fin)
{
struct pila *aux;
struct grada *auxg = NULL;
aux = (struct pila *) malloc (sizeof(struct pila));

//auxg = (struct grada *) malloc (sizeof(struct grada));
if((*tope) == NULL)
aux->ant = NULL;
else
{
aux->ant = (*tope);
(*fin)->tope = (*tope);

}


(*tope) = aux;



cout << "Asiento numero: " << endl;
cin >> (*tope)->silla;
cout << "Has insertado una silla en la grada numero: " << (*fin)->grad << endl;

}

void extraersilla(struct pila **tope,struct grada **inicio)
{
struct pila *aux=NULL;
struct grada *auxg = NULL;
aux = (*tope);
if((*inicio)->tope == NULL)
{
cout << "No hay sillas para extraer" << endl;
}
else
{

(*tope) = aux->ant;
(*inicio)->tope = (*tope);
cout << "La silla " << aux->silla << "a sido eliminada de la grada " << endl;
free(aux);

}


}

void listarpila(struct pila *tope)
{
struct pila *aux;
aux = tope;
while( aux != NULL)
{
cout << "Silla numero: " << aux->silla << endl;;
aux = aux->ant;
}
}

void main()
{
struct grada *inicio = NULL,*fin = NULL;
struct pila *tope = NULL;

int op;
do{
cout << "1.-Insertar grada\n2.-Insertar asiento en grada\n3.-Extraer elemento de pila\n5.-Salir" << endl;
cin >> op;
switch(op)
{
case 1:insgrada(&inicio,&fin,tope);
break;
case 2:
if(inicio == NULL)
cout << "Aun no hay grada donde insertar sillas" << endl;
else
inspila(&tope,&fin);
break;
case 3:extraersilla(&tope,&inicio);
break;
case 4:listarpila(tope);
break;
}
}while(op != 5);

return;
}

Última edición por darkcronos; 24/10/2009 a las 18:32
  #2 (permalink)  
Antiguo 17/10/2009, 12:42
 
Fecha de Ingreso: agosto-2009
Ubicación: Cartagena, Colombia
Mensajes: 516
Antigüedad: 14 años, 8 meses
Puntos: 13
Respuesta: ayuda proyecto pilas y colas dinamicas

Tienes que tener en cuenta que cada nodo de la pila tiene un puntero al siguiente nodo y un puntero que como cabeza de pila.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:03.