Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Grafi

    ciao a tutti, mi sapete dire dove sbaglio nella funzione list2graph (funzione che presa uan lista ritorna un grafo)?

    Codice PHP:
    #include <stdio.h>
    #include <stdlib.h>

    #define MAX 50

    struct linked_list {
           
    int val;
           
    struct linked_list *next;
           };
    typedef struct linked_list ELEMENT;
    typedef ELEMENT *LINK;

    typedef struct graph{
            
    LINK adj_list[MAX];
            
    int num_vert;
    }
    graph;

    void inserisci(LINK *lint dato);
    void print_list(LINK l);

    graph list2graph(LINK l);

    int main (void)
    {
        
    int array[]={0,1,0,4,1,2,3,1};
        
    int i;
        
        
    LINK l=NULL;
        
        for(
    i=0;i<8;i++)//crea la lista dall'array
         
    inserisci(&l,array[i]);
         
        
    print_list(l);
        
        
    graph g=list2graph(l);
        
        
    //inserire codice per stampare la lista di adiacenza
     
        
    system("PAUSE");
    }

    /******************************************************************************/

    graph list2graph(LINK l)
    {
       
    graph tmp;
       
       
    tmp.num_vert=5;
       
       while (
    l->next != NULL)
       {
          
    inserisci(&tmp.adj_list[l->val],l->next->val); 
          
    l=l->next;
       }
       
       return 
    tmp;
    }  
          
    /****************************funzioni liste************************************/

    void inserisci(LINK *lint dato)
    {
        if (*
    l==NULL)
        {
           
    LINK punt;
           
    punt malloc(sizeof(ELEMENT));
           
    punt->next NULL;
           
    punt->val dato;
           *
    punt;
        }
        
        else 
    inserisci(&((*l)->next), dato);
    }

    void print_list(LINK l
    {
         if(
    l==NULL)
            
    printf("NULL\n");
         else {
            
    printf("%d ---> "l->val);
            
    print_list(l->next);
            }

    sbaglio qualcosa nel corpo del while, dev-c++ compila tutto perfettamente.

    grazie a tutti!

  2. #2
    ho risolto cosi:

    Codice PHP:
    graph list2graph(LINK l)
    {
       
    graph tmp;
       
    int i;
       
       
    tmp.num_vert=5;

       for(
    i=0;i<5;i++)
         
    tmp.adj_list[i]=NULL;
         
       
       while (
    l->next != NULL)
       {
          
    inserisci(&tmp.adj_list[l->val],l->next->val); 
          
    l=l->next;
       }
       
       return 
    tmp;

    non c'è qualcosa di + "elegante"? ciao e grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.