Resultados 1 al 3 de 3

Tema: Listas enlazadas en c

  1. #1 Listas enlazadas en c 
    Avanzado
    Fecha de ingreso
    Nov 2003
    Mensajes
    235
    Descargas
    0
    Uploads
    0
    Estoy haciendo unas practicas y necesito crear una lista enlazada de datos del siguiente tipo:
    typedef struct TipoCentral {
    int id_central;
    int estado; /*Esta variable va a comprobar si la central esta apagada o no */
    /* Un 0 significa que la central está apagada y un 1 que está encendida. */
    struct TipoCentral *siguiente; /* Apunta al siguiente nodo de la lista. */
    } Central;

    Lo que hago es crear una variable de tipo Central y un puntero que apunta a ella. El problema me surge cuando intento crear otra central ya que no puedo crear tantas variables de tipo Central como necesite.

    ¿Que hago para que pueda crear todos los nodos que quiera de la lista enlazada creando sólo una variable y un puntero de tipo Central?

    No sé si me he explicado bien, pero espero que lo hayáis entendido.
    All in all, it's just another brick on the wall (Pink Floyd).
    Citar  
     

  2. #2  
    Moderador HH
    Fecha de ingreso
    Dec 2001
    Ubicación
    España
    Mensajes
    834
    Descargas
    2
    Uploads
    0
    Te refieres a esto?:
    Código:
    #include <malloc.h>
    
    #define encendido 1
    #define apagado 0
    
    struct TipoCentral{
        int id_central;
        int estado;
        struct TipoCentral *siguiente; 
    };
    
    struct TipoCentral* crearCentral();
    
    int main(void)
    {
        struct TipoCentral* primero;
        
        primero=crearCentral();
        primero->siguiente = crearCentral();
        primero->siguiente->estado=apagado;
        
        return 0;
    }
    
    struct TipoCentral* crearCentral()
    {
        struct TipoCentral* nueva;
        nueva = (struct TipoCentral*) malloc(sizeof(struct TipoCentral));
        nueva->siguiente=NULL;
        return nueva;
    };
    Así puedes ir añadiendo Elementos, los q t d la gana

    P.D.Si sta mal dadme un toke que yo soy d C++ y no stoy mu puesto tp

    un Saludo,
    KaoS
    Última edición por KaoS; 06-08-2004 a las 23:14
    Normas Del Foro | En la comunidad ayudamos a resolver problemas, solo pedimos paciencia y cabeza.
    Más información sobre mi: Raúl Jiménez
    Citar  
     

  3. #3  
    Avanzado
    Fecha de ingreso
    Nov 2003
    Mensajes
    235
    Descargas
    0
    Uploads
    0
    Toy tonto, esta mañana me he dado cuenta de que lo que tenía que usar era la reserva de memoria dinámica (se entera de este lapsus mi profesor y me pone un cero como una catedral).

    Lo he solucionado asi:

    // Reserva memoria para tantas centrales como definamos en N
    Central *crearCentrales(int N)
    {
    int i = 1;
    Central *pCentral, *pCentralAux, *pCentralAux2;


    pCentral = (Central *)malloc(sizeof(Central));
    if (pCentral == NULL)
    return NULL;
    pCentral->id_central = 1;
    pCentral->siguiente = NULL;
    pCentral->estado = 1;

    if (N >= 2)
    {
    pCentralAux = (Central *)malloc(sizeof(Central));
    if (pCentralAux == NULL)
    return NULL;

    i++;

    pCentralAux->id_central = i;
    pCentralAux->estado = 1;
    pCentralAux->siguiente = NULL;

    pCentral->siguiente = pCentralAux;
    }


    while (i < N)
    {
    pCentralAux2 = (Central *)malloc(sizeof(Central));
    if (pCentralAux2 == NULL)
    return NULL;

    i++;

    pCentralAux2->id_central = i;
    pCentralAux2->estado = 1;
    pCentralAux2->siguiente = NULL;

    pCentralAux->siguiente = pCentralAux2;
    pCentralAux = pCentralAux2;
    }

    pCentralAux->siguiente = pCentral;

    return pCentral;
    }
    All in all, it's just another brick on the wall (Pink Floyd).
    Citar  
     

Temas similares

  1. Listas de control de acceso (ACL)
    Por LUK en el foro GENERAL
    Respuestas: 0
    Último mensaje: 04-06-2012, 09:26
  2. Listas de Contactos
    Por LeveL3D en el foro CIBERACTIVISMO
    Respuestas: 0
    Último mensaje: 30-03-2009, 20:24
  3. Problema con listas desplegables en openoffice
    Por fideos en el foro BASES DE DATOS
    Respuestas: 2
    Último mensaje: 30-01-2009, 21:08
  4. para que las listas de canales?
    Por naranjo27 en el foro DIGITAL+
    Respuestas: 5
    Último mensaje: 11-05-2006, 12:00
  5. Listas de correo en español?
    Por ZaNN en el foro GENERAL
    Respuestas: 1
    Último mensaje: 26-11-2002, 20:11

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •