Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78

    [c]Liste dinamiche..alle prime armi

    Salve sto da poco studiando le liste dinamiche non capisco concettualmente a che serve la seguente riga di codice:
    codice:
    typedef TNode *TList;
    codice:
    struct SInfo{
           
           int value;
                };
    typedef struct SInfo Tinfo;
     
    struct SNode{
           
           TInfo info;
           struct SNode *link;
           
    };
    typedef struct SNode TNode;
    typedef TNode *TList;
    int main()
    {
        TList lista;
        return 0;
        
        
    }
    grz anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    Ciao

    Ciao , più di "cosa serve " quella riga di codice , è meglio parlare di "cosa fa" , perchè l'uso di typedef non è indispensabile ....

    Una lista , è formata da nodi concatenati tra di loro da puntatori , ciascun nodo non è altro che un puntatore a struct , quindi ti serve un puntatore ad struct , per creare la lista e per i nodi
    codice:
       typedefTNode*TList;
    
        //Tnode rappresenta una struct , TList  è un tipo puntatore a struct 
    
    TList lista ; //dichiari un puntatore  a struct 
    TNode *lista ; // dichiari un puntatore equivalente 
    struct SNode *lista // ancora puntatore equivalente 
     
    
    
    
    Tecnologia

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    Ciao grazie per la risposta,ma il dubbio permane , non c'è già la seguente istruzione :

    codice:
    struct SNode *link;
    che fa si che link punti a una struttura successiva?

    a che serve mettere
    codice:
    typedefTNode*TList;
    se ho già creato già un qualcosa(un puntatore)che punta a un nodo successivo?
    Spero di essere stao chiaro..Grazie per la pazienza

  4. #4
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    Ciao

    Ciao , penso che sia meglio se riparti da capo a trattare le liste , e non ti concentri su quel codice ..

    Non penso di essere capace di spiegarti in modo chiaro le liste .. ma rinnovando il consiglio , provo a fare un po di chiarezza ..

    Elemento base di una lista , è l' allocazione dinamica della memoria , una lista è formata da nodi che sono puntatori a struct allocati dinamicamente , in questo modo non solo è possibile aggiungere un nodo ad una lista , ma anche eliminarlo liberando memoria , cosa non possibile con l'allocazione statica ...

    Quella struttura che è dichiarata nel codice , non è un nodo della lista , ma "un modello" di cosa allocare dinamicamente , e serve per sapere cosa devi allocare ..

    esempio

    LISTA=(struct nodo) malloc(sizeof(struct nodo ));

    hai allocato dinamicamente memoria per un nodo nel puntatore lista , sapendo che la memoria
    necessaria è la dimensione di struct nodo
    Tecnologia

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    78
    ok ora ho capito.So bene che questa non è la sezione giusta,ma potrei chiederti se conosci qualche testo o qualche link da cui capire bene questo argomento con esercizi passo-passo..grazie ancora

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 © 2024 vBulletin Solutions, Inc. All rights reserved.