• Viernes 8 de Noviembre de 2024, 19:03

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Evgeni

Páginas: [1]
1
C/C++ / Re: Vector de Punteros - Multilista
« 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.

2
C/C++ / Re: Vector de Punteros - Multilista
« 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;



Funcion, main, para cargar mi multilista:


#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include <conio.h>

typedef struct vuelos
{
   int nro_vuelo;
   int tot_lugares;
   int ocupados;

   struct pasajeros *abajo;
   struct vuelos *sig;
}nodo_vuelos;

typedef struct pasajeros
{
    long nro_pasaporte;
   long telefono;

   struct pasajeros *prox;
}nodo_pasajeros;


void crear(nodo_vuelos *pt);
void mostrar(nodo_vuelos *pt);

void crear2(nodo_pasajeros *pt,int);
void mostrar2(nodo_pasajeros *pt);

int main()
{
    nodo_vuelos *primeroV;
    nodo_vuelos *auxV;
    nodo_pasajeros *primeroP;
    nodo_pasajeros *auxP;

    primeroV=(nodo_vuelos*)malloc(sizeof(nodo_vuelos));

    auxV=primeroV;

    crear(primeroV);

    mostrar(primeroV);
getch();
return 0;
}


void crear(nodo_vuelos *registro)
{
    int cont=0;

    printf("nPor favor, ingrese numero de vuelo (0 para terminar): ");
    scanf("%d",&registro->nro_vuelo);

    if(registro->nro_vuelo==0)
    {
        registro->nro_vuelo=0;
        registro->sig=NULL;
    }
    else
   {
        printf("Por favor, ingrese la cantidad de lugares: ");
        scanf("%d",&registro->tot_lugares);

        printf("Por favor, ingrese la cantidad de lugares ocupados: ");
        scanf("%d",&registro->ocupados);

        while(registro->tot_lugares<registro->ocupados)
        {
            printf("Por favor, ingrese la cantidad de lugares ocupados: ");
            scanf("%d",&registro->ocupados);
        }

        cont=registro->ocupados;

        registro->abajo=(nodo_pasajeros*)malloc(sizeof(nodo_pasajeros));
        crear2(registro->abajo,cont);

        registro->sig=(nodo_vuelos*)malloc(sizeof(nodo_vuelos));
        crear(registro->sig);
   }
}

void crear2(nodo_pasajeros *registro,int cont)
{
    if(cont==0)
    {
        registro->prox=NULL;
    }
    else
    {
        printf("n");
        printf("Por favor, ingrese el numero del pasaporte: ");
        scanf("%d",&registro->nro_pasaporte);

        printf("Por favor, ingrese el telefono del pasajero: ");
        scanf("%d",&registro->telefono);

        cont--;

        registro->prox=(nodo_pasajeros*)malloc(sizeof(nodo_pasajeros));
        crear2(registro->prox,cont);
   }
}

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);

       mostrar2(registro->abajo);
       mostrar(registro->sig);
    }
   return;
}

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;
}

3
C/C++ / Vector de Punteros - Multilista
« en: Martes 8 de Septiembre de 2009, 17:14 »
Gente, necesito su ayuda:

1) Tengo una multilista, de la siguiente estructura:
   
   Vuelo 1 ----------------------------------> Vuelo 2
         * Pasajero 1 (con sus datos)           * Pasajero 1 (con sus datos)
         * Pasajero 2                                  
         * Pasajero n...                              

2) Un vector:
   
    Lu - Ma - Mi - Ju - Vi - Sa - Do

    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!

Páginas: [1]