Un vector que representa dias, entonces no entiendo como puedo hacer para meter Vuelo 1 y Vuelo 2 por ejemplo al Lunes, en la posicion 1 del vector se guardara una serie de vuelos que contiene Lunes, como lo puedo hacer? Se que se trata de un vector de punteros, pero no entiendo como puedo meter mi multilista al casillero 1 del vector.
Muchas gracias por sus ideas y ayuda!
Título: Re: Vector de Punteros - Multilista
Publicado por: ocelot_76 en Miércoles 9 de Septiembre de 2009, 00:33
Seria de gran ayuda postear el enunziado del programa o se komentara k se ha de hacer concretamente si no es impossible ayudar
OuGi
Título: Re: Vector de Punteros - Multilista
Publicado por: Evgeni en Miércoles 9 de Septiembre de 2009, 20:18
Cita de: "ocelot_76"
Seria de gran ayuda postear el enunziado del programa o se komentara k se ha de hacer concretamente si no es impossible ayudar
OuGi
Ahi explico un poquito mas:
Es sencillo, es todo un tp practico grande, saque solo una partecita,
Tengo que tener un vector de punteros,
LU MA MI JU VI SA DO BS
Un vuelo o mas que va para buenos aires dias lu -> domingo.
Por cada dia tengo Vuelos, para Buenos Aires, cada vuelo tiene varios pasajeros, la estructura de vuelos, es una lista, y debajo de cada vuelo tengo pasajeros, entonces se hace una multilista, estos pasos ya los hice, lo que no entiendo como meter esto a un Vector, hice las funciones de la carga de multilista, y todo....pero como cargar todo esto en un vector, no entiendo.
Typedef struct vuelos { int nro_vuelo; int tot_lugares; int ocupados; struct pasajeros *abajo; struct vuelos *sig; } nodo_vuelos;
Typedef struct pasajeros { char nombre[15]; long nro_pasaporte; long telefono; struct pasajeros *prox; } nodo_pasajeros;
void mostrar(nodo_vuelos *registro) { if (registro->sig!=NULL) { printf("nVuelo->%dn",registro->nro_vuelo); printf("-----------------------------n"); printf("El total de lugares: %dn",registro->tot_lugares); printf("El total de ocupados: %dn",registro->ocupados);
void mostrar2(nodo_pasajeros *registro) { if(registro->prox!=NULL) { printf("-----------------------------n"); printf("El numero del pasaporte: %dn",registro->nro_pasaporte); printf("El telefono: %dn",registro->telefono);
mostrar2(registro->prox); } return; }
Título: Re: Vector de Punteros - Multilista
Publicado por: Amilius en Miércoles 9 de Septiembre de 2009, 20:36
Si entendí bien la lista de vuelos siempre es de 7 elementos (días de la semana), como no es probable que aumenten nuevos días a la semana :) entonces puedes usar un arreglo estático de punteros a "vuelos" (que debería llamarse "vuelo" por que sólo almacena un vuelo, igual "pasajeros" debería llamarse "pasajero").
Asi que inicialmente puedes tener un puntero a un arreglo estático de 7 stucts "vuelo" que puedes reservar con un solo malloc.
Luego, para cada vuelo tendrías que ir agregando sus pasajeros uno a uno, con una funcion que reciba como parámetro un puntero a un struct "pasajero" ya definido y un doble puntero a un pasajero (esto para que la funcion pueda modificar el puntero en sí.)
Título: Re: Vector de Punteros - Multilista
Publicado por: Evgeni en Miércoles 9 de Septiembre de 2009, 20:54
Miren esa imagen:
img246.imageshack.us/i/vec.jpg/
(pegenla en el navegador y enter)
No se puede hacer algo asi? En el vector guardar un puntero por ejemplo del dia LUNES que apunte a vuelo 1? Es posible hacer algo asi? Como declaro el vector? De tipo nodo? :blink: No entiendo.
Toda la parte de enlazes de vuelos y pasajeros, y carga ya esta OK.