Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    1

    [c]inserimento di un nodo di una lista in coda

    Salve,sto scrivendo delle funzioni sulle liste, ma mi sono bloccato sull'inserimento in coda. Non ci sono errori;tuttavia, quando vado poi a stampare la lista non trovo più il nodo iniziale.Ecco il codice:
    http://pastebin.com/iXbse4ds
    Grazie in anticipo!!

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    codice:
    lista=inserisciNodoInCoda(lista);
    
    Nodo* inserisciNodoInCoda(Nodo* first){
        Nodo* tmp;
        tmp=(Nodo*)malloc(sizeof(Nodo));
         if(tmp==NULL){
            exit(-1);
        }
        tmp->info=3;
        tmp->next=NULL;
    
    
        while(first->next!=NULL){
    
    
            first=first->next;
    
    
        }
        first->next=tmp;
    
    
        return first;
    }
    il problema è che tu passi lista (first) e nella funzione lo riassegni (while) facendolo puntare all' (pen)ultimo elemento e lo restituisci, sovrascrivendo lista (il tuo nodo radice)
    Puoi ovviare facendo una copia di first e fare il ciclo su di essa non modificando first.
    Tieni presente che nella tua funzione non tieni conto di fare un inserimento in coda nel caso lista sia null (vuota)
    Ultima modifica di boots; 29-12-2016 a 19:28

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.