Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    5

    [c] aiuto implementazione lista elementare!!!!

    Salve,vorrei un aiuto per correggere la mia implementazione...
    premetto che sono alle prime armi con c... ,cosa c'è che non va nel codice???

    codice:
    /* Accetta in ingresso una sequenza di interi e li memorizza in una lista.Il numero di interi che compongono la sequenza è stabilito dall'utente*/  #include <stdio.h> #include <malloc.h>      //STRUTTURA DEGLI ELEMENTI DELLA LISTA,CHE SARANNO DEI NODI COLLEGATI     struct nodo{      int inf;  // IL TIPO NODO è UNA STRUTTURA COMPOSTA DA 2 CAMPI: UN CAMPO INFORMAZIONE(IN QUESTO CASO DI TIPO INTERO) E UN CAMPO NEXT      struct nodo *next; //CHE è UN PUNTATORE ALLA STRUTTURA STESSA,IN PARTICOLARE AL PROSSIMO NODO DELLA LISTA };  struct nodo *crea_lista(); //dichiaro il metodo crea lista  void visualizza_lista(struct nodo *);// e il metodo visualizza lista  int main(int argc, char *argv[]) {    struct nodo *testa_lista; //mi creo il primo nodo che punterà alla testa della lista     testa_lista= crea_lista(); //il metodo crea lista restituisce la testa della lista(nodo),in questo modo creiamo la list     visualizza_lista(testa_lista);//stampiamo la lista,il metodo richiede il puntatore al primo nodo della lista per la stampa     printf("\n");     return (0); }      //ADESSO REALIZZIAMO I METODI   /*PARTIAMO CON IL METODO CREA LISTA CHE RESTITUISCE IL PUNTATORE ALLA TESTA DELLA LISTA,   per questo avremo:                                 struct nodo *crea_lista()       DA QUI SI SPIEGA L'ASTERISCO(perchè restituisce un puntatore)*/                                struct nodo *crea_lista() {     struct nodo *nuovo;//mi creo il nuovo nodo     struct nodo *corrente;//me ne creo un'altro di supporto     int dim;//dimensione della lista     int cont;//contatore per il for     printf("specifica la dimensione della lista:  ");     scanf("%d", &dim);     if(dim ==0) nuovo=NULL;     else     {//se la lista non è vuota creo il primo elemento             nuovo =(struct nodo *)malloc(sizeof(struct nodo));              printf("\nInserisci il primo valore: ");             scanf("%d", &nuovo->inf);             corrente = nuovo;             for(cont=2; cont<=dim; cont++)             {                 corrente->next = (struct nodo *)malloc(sizeof(struct nodo)); //SI NOTI CHE SI TRATTA DELL'INSERIMENTO IN CODA                 corrente= corrente->next;                 printf("\nInserisci il valore del nodo: ");                 scanf("%d", &corrente->inf);             }//chiudo il for                 corrente->next= NULL;     }//chiudo else        return(nuovo);//testa lista  }   //chiudo la funzione   // CREIAMO IL METODO NECESSARIO PER STAMPARE LA LISTA CHE PRENDE IN INPUT LA TESTA DELLA LISTA(si noti che non c'è nessun asterisco  //perchè in questo caso testituisce un void e non un puntatore come prima,invece prende in input un puntatore!!!!!)  void visualizza_lista(struct nodo *testa) {     while(testa!=NULL)     {         printf("%d", testa->inf);         printf("-->");         testa= testa->next;//scorro il nodo in avanti     }         printf("NULL\n"); }

    Grazie...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Originariamente inviato da diantha
    cosa c'è che non va nel codice???
    Lo devi dire tu a noi.
    Come richiesto dal regolamento interno, devi riportare:

    1) Eventuali messaggi di errore del compilatore/linker
    2) Eventuali messaggi di errore in esecuzione
    3) Eventuali risultati inattesi

    Incollare qui tutto il codice e dire "arrangiatevi a trovare gli errori" non è corretto.

    Attendiamo ulteriori indicazioni.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.