| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Come invertire una lista unica Collegato
    E 'comune per necessità di invertire una lista collegata , ma può essere difficile da fare come si deve . Una delle soluzioni più semplici è quello di scorrere l' anello , invertendo ogni puntatore. Questo pseudocodice mostra come eseguire questo processo , mantenendo traccia delle variabili necessarie . Lo pseudocodice è abbastanza generico che si dovrebbe essere in grado di adattarsi a qualsiasi linguaggio il codice è dentro Istruzioni
    1

    Verifica per semplici casi limite . Se il puntatore di testa è nullo , la lista è vuota e nessun lavoro deve essere fatto . Se indicatore accanto al capo è nullo , c'è solo un elemento della lista , in modo da invertire non si fa nulla .

    Se testa = null allora returnif testa - > next = null poi tornare
    2

    Inizializzare tre puntatori : prec , correnti e successivi. " Indietro " e "corrente" dovrebbero puntare al nodo della lista . "Avanti" deve puntare al secondo nodo , cercando in puntatore del nodo testa
    puntatore

    prev = testa ; . Corrente del puntatore = testa ; puntatore next = testa - > next ;

    3

    indicatore accanto al nodo di testa a null . Il nodo principale diventerà l'ultimo nodo della lista , quindi non ci saranno nodi dopo di esso.

    Testa - > next = null
    4

    Loop attraverso la lista invertire la direzione dei puntatori . I tre puntatori inizializzati in precedenza vengono utilizzati per tenere traccia della posizione corrente nell'elenco .

    Mentre accanto ! = Null //A nullo prossimo puntatore significa che abbiamo raggiunto la fine della prossima listcurrent = //Advance il pointernext corrente = current- > next //avanzare alla prossima pointercurrent - > next = prev //Point il nodo corrente al nodo precedente , invertendo il linkprev = corrente //Avanza l'ultimo pointerend mentre
    5

    punto la variabile testa alla nuova testa della lista .

    testa = corrente

    Previous :

    next :
      Articoli Correlati
    ·Come utilizzare la funzione strcpy in C + + 
    ·Come convertire da String a Char in C + + 
    ·Come compilare C + + in JGrasp 
    ·Come utilizzare la funzione memset in C + + 
    ·Come rimuovere Imbottitura da una struttura C 
    ·Come creare illuminazione dinamica in GTKRadiant 
    ·Come fare un Stickman in C + + 
    ·Strumenti per trovare una perdita di memoria 
    ·Come creare un vettore di stringhe in C + + 
    ·Cocoa Touch vs . Obiettivo C 
      Articoli in evidenza
    ·Come importare modelli in GTK Radiant 
    ·Come installare i compilatori C + + per Netbeans 
    ·Una spiegazione di XBLite 
    ·Come fare commenti in un file PHP 
    ·Visual Basic Tips 
    ·Come sapere se una talpa dovrebbe essere rimosso 
    ·Come utilizzare il debugger GDB da GNU 
    ·Come modificare il tipo di oggetto a Python 
    ·Come leggere da un sito web con Python 
    ·Come fare il parsing XML a un database 
    Copyright © Conoscenza Informatica http://it.wingwit.com