Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [C++]Invertire lista

  1. #1
    Utente di HTML.it L'avatar di xrwnis
    Registrato dal
    Apr 2008
    Messaggi
    42

    [C++]Invertire lista

    Ciao!!! Devo scrivere una procedura che inverta gli elementi di una lista. Cioè se l'input è 1,2,3,4 l'output sarà 4,3,2,1. Questa qui non funziona...Qualche suggerimento?? Grazie

    codice:
    void ribalta(Pnodo &TL1,Pnodo TL,Pnodo L)//TL1,TL ed L inizialmente sono tutti la testa lista
    {
        
        Pnodo tmp1,tmp2;
        
         if(TL1==TL)
         {
             while(L->next!=NULL)
                L=L->next;
             
             tmp1=L;
             tmp2=TL;
             TL1=tmp1;
             L=NULL;
             TL1->next=tmp2;
             return ribalta(TL1,TL,TL1);
                     
         }
         
         else if(TL->next!=NULL)
         {
              while(L->next!=NULL)
                 L=L->next; 
              tmp1=L;
              tmp2=TL;
              L=NULL;
              TL=tmp1;
              TL->next=tmp2;
              return ribalta(TL1,TL->next,TL->next);
         }
    
    }

  2. #2
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    ciao, premetto che non sono molto esperto però...dando uno sguardo al codice che hai postato ho notato delle imprecisioni a mio parere...per esempio

    codice:
     tmp1=L;
     TL1=tmp1;
    questo assegnamento non ha molto senso...perchè quando finisce il while()
    precedente l è NULL quindi...tmp1 diventa NULL e di conseguenza anche TL1...poi segue l'altra:
    codice:
    TL1->next=tmp2;
    se TL1 è NULL come fai a puntare a next?!....

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.