[C]Acquisizione grafo da file

di il
3 risposte

[C]Acquisizione grafo da file

Ciao! Il mio problema è come acquisire un grafo, sotto forma di lista di adiacenza, da file. Mi è stato suggerito di utilizzare un unico file ma non riesco a capire come acquisirlo e come scriviere il file di testo. Ho creato la struttura nodo e la struttura grafo, ma come faccioa riempirle?
    
    /*struttura vertice*/
    typedef struct vertice_grafo
    {
            int nome;
            double fitness;/*attributo del nodo*/
            struct vertice_grafo *vertice_succ_p;
            struct arco_grafo *lista_archi_p;
    } vertice_grafo_t;
    
    /*struttura arco*/
    typedef struct arco_grafo
    {
            double peso;
            struct vertice_grafo *vertice_adiac_p;
            struct arco_grafo *arco_succ_p;
    } arco_grafo_t;

3 Risposte

  • Re: [C]Acquisizione grafo da file

    Ulteriori informazioni, il file da cui prendere informazioni è bene che sia in questa forma:

    vertice1 vertice8 distanza1_8
    ... ... ...
    verticei verticej distanza i_j
  • Re: [C]Acquisizione grafo da file

    Nuovo aggiornamento: sono riuscito a capire come acquisire correttamente i dati da file ora però ho un problema che mi sembra assurdo e non riesco a capire cosa non vada in queste 4 righe di codice:
        
       /*vettore di vertici*/
        vertice_grafo_t *vertice = NULL;
        vertice_grafo_t *pv = NULL;
        printf("Lista primaria dei vertici:\n");
        
        /*creo la lista primaria dei vertici*/
    
        pv=(vertice_grafo_t *)malloc(sizeof(vertice_grafo_t));
       /*tengo la testa della lista*/
        vertice = pv;
        for(i=0;i<nodi;i++)
        {
                pv->nome = i;
                pv->vertice_succ_p=(vertice_grafo_t *)malloc(sizeof(vertice_grafo_t));
                pv = pv->vertice_succ_p;
        }
        i=0;   
        while(i<7)
        {
            pv=vertice;
            printf("Vertice: %d\n", pv->nome);
            pv=pv->vertice_succ_p;
            i++;
        }
    Queste poche righe di codice praticamente istanziano una struttura vertice_grafo_t che è definita ricorsivamente. Nel primo ciclo for nomino i vertici con dei numeri crescenti. Quando poi vado a stamparli a video, il risultato è "0 0 0 0 0 0", praticamente stampa 6 volte il nome dl primo nodo. Ora le possibilità sono due:
    -o sbaglio a concatenare le strutture
    -o sbaglio a stamparle

    HELP!!!!!!
  • Re: [C]Acquisizione grafo da file

    Risolto.
Devi accedere o registrarti per scrivere nel forum
3 risposte