Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur till Omvänd ett gemensamt länkad lista

    Det är vanligt att behöva vända en länkad lista , men det kan vara svårt att göra det ordentligt . Ett av de enklaste lösningarna är att iterera genom öglan , vända varje pekare . Denna pseudokod visar hur du utför denna process samtidigt hålla koll på de nödvändiga variablerna . Pseudokoden är generiska nog att du ska kunna anpassa den till vilket språk din kod är i. Instruktioner
    1

    Kontrollera för enkla kant fall . Om framvisaren är null , är listan tom och inget arbete som behöver göras . Om huvudet nästa pekare är null , det finns bara ett element i listan , så vända det gör ingenting .

    Om huvudet = null sedan returnif head - > next = null sedan tillbaka
    2

    initiera tre pekare : prev , nuvarande och nästa . " Föregående " och " ström " ska peka på huvudet nod i listan . " Next " ska peka på den andra noden genom att titta på pekaren i huvudet nod

    pekaren prev = huvud ; . Pekare ström = huvud , pekare nästa = huvud - > next ;
    Sida 3

    Ställ huvudet nodens nästa pekare till null . Huvudet nod kommer att bli den sista noden i listan , så det blir inga noder efter det .

    Huvud - > next = null
    4

    Loop genom listan vända den riktning pekare . De tre pekare initierade tidigare används för att hålla reda på den aktuella positionen i listan .

    Medan nästa ! = Null //A null nästa pekare betyder att vi har kommit till slutet av den listcurrent = nästa //Advance aktuell pointernext = ström - > next //Advance nästa pointercurrent - > next = prev //Point aktuell nod till föregående noden , vända linkprev = ström //tidigarelägga sista pointerend medan
    5

    Point huvudet variabeln på listans ny chef .

    huvud = nuvarande Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man kompilerar ett sidhuvud i C + +
    ·Konvertera QString till Int
    ·Hur man implementera en algoritm till datorn
    ·Lägga till färgad belysning I GtkRadiant
    ·Hur Debug C + + Tags
    ·Vad betyder det om en App filen redan finns på en IPad…
    ·Hur man skriver en C + + -program för att simulera en …
    ·Hur man läser in från en extern fil i C + +
    ·Hur man använder en ringbuffert
    ·Hur man kompilerar C + + Med FStream
    Utvalda artiklarna
    ·Ta reda på om Tom ResultSet returnerades i Java
    ·Hur Visa XBRL
    ·Hur man skapar en dubbelt - länkad lista i C-programme…
    ·Hur man tar bort Crestline Windows
    ·Hur Rita flera figurer i Java
    ·Hur man gör en användare Avslutade Loop i Java
    ·Typer av Horn klausuler i Prolog
    ·Hur man sätter in en ComboBox i C - Sharp
    ·Hur man använder en kod för att frysa kolumner
    ·Hur Referens C DLL i Net
    Copyright © Dator Kunskap http://www.dator.xyz