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 man skapar en dubbelt - länkad lista i C-programmering

    Programmerare använder länkade listor som linjärt traversable datastrukturer . Detta innebär att programmeraren kan börja från början av listan ( kallas huvudet ) och gå framåt genom listan en punkt i taget . Denna metod för datalagring gör också programmeraren att effektivt lägga till data i listan , och erbjuder ett mer mångsidigt alternativ till vissa andra datastrukturer som dynamiska matriser . Detta exempel visar hur man konstruerar en enkel dubbelt - länkad lista , som möjliggör navigering i listan på två riktningar ( framåt och bakåt ) . Saker du behöver
    Text Redaktör C /C + + kompilator eller IDE ( t.ex. Microsoft Visual Studio )
    Visa fler instruktioner
    1

    Skapa den nod struktur som kommer att fungera som datatypen för den länkade listan . I textredigeraren , skriv följande kod :

    # include
    huvudsakliga

    int {

    struct listNode {

    int uppgifter ;

    strut listNode * prev ,

    strut listNode * nästa ;

    };

    avkastning 0;

    }

    " struct listNode " kodblock skapar en mall för de objekt som kommer att fylla listan . Denna mall definierar en listNode som innehåller tre delar : en datapost ( ett heltal ) och pekare till föregående och nästa objekt i listan . En pekare är en variabel som håller en minnesadress. Pekare används för att hänvisa till andra datastrukturer i djupt minne och att dynamiskt allokera minne under exekvering av kod .
    2

    Deklarera variabler som kommer att organisera listan struktur . Sätt detta exempel kod i textfilen :

    int storlek ,

    listNode * huvud ,

    listNode * svans ,

    svans = huvud ;

    huvudet = svans ,

    Dessa två pekare är början och slutet av listan , respektive. Med hjälp av dessa pekare, vet programmeraren där början av listan är och där änden är , helt enkelt genom att kontrollera om den aktuella noden är " huvud " eller " svans"- pekare. De båda hänvisar till varandra i händelse av en tom lista .
    3

    Skapa en enkel algoritm för att lägga till objekt från den länkade listan . Följ denna exempelkod :

    void append ( int num ) {

    struct listNode * spårämne = huvud ;

    struct listNode * newNode = ( struct listNode * ) malloc ( sizeof ( struct listNode ) ) ;

    newNode - > uppgifter = num ;

    om ( huvud == null ) {

    huvudet = newNode ;

    tail = newNode ;

    newNode - > prev = huvud ;

    newNode - > next = svans ,

    }

    else {

    samtidigt ( spårämne - > next = svans ! ) katalog

    { spårämne = spårämne - > next ; }

    newNode - > prev = spårämne ;

    newNode - > next = svans ,

    spårämne - > next = nod;

    svans = node ;

    }

    storlek + + ;

    }

    kod lägger till en nod till slutet av listan . Det börjar med att skapa en pekare till början av listan ( " spårämne " ) . Sedan skapar det en pekare till en dynamiskt allokerad block av minne som avsatts för ett nyskapat listNode ( newNode ) och ställer in uppgifter om den noden till heltalet " num " . Om huvudet pekar på noll ( vilket innebär att listan är tom , eftersom huvudet pekar på ingenting) då koden infogar nod i början av listan . Annars kommer " medan" loop kretsar genom noderna i listan tills de når den sista noden . När " spårämne " pekar på det sista elementet i listan , koden infogar noden. Den slutliga kommando lägger till " storlek " heltal , hålla koll på elementen i listan
    4

    Skapa en algoritm för att ta bort och objektet från slutet av listan : .

    void removeNode ( ) {

    om ( svans = huvud ! ) {

    struct listNode * end = svans ,

    tail = svans - > prev ;

    free ( slutet ) ,

    storlek -;

    }

    }

    Denna kod skapar en pekare ( " end " ) till den sista element i listan ( samma element " svans " pekar på ) . Därefter svansansättningen att den pekar på elementet omedelbart före det sista elementet ( noden pekas på av den " prev " pekare av det sista elementet ) . Slutligen är det minne som används av sista noden , avses med " slut " , frigöras för vidare användning .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man använder funktioner i C + +
    ·Hur Word Passa på C30
    ·Hur man använder Turbo C
    ·Hur konvertera en STD sträng till ett heltal
    ·Hur man använder FX -filer i GTK Radiant
    ·Hur du justerar Pekare för Kovarianta Returer
    ·Hur man läser en String i C
    ·Lägga till en vippströmbrytare till en Silverlight Ap…
    ·Hur får tangenttryckningar i C + +
    ·Hur man lär Pekare i C
    Utvalda artiklarna
    ·Så lägger du ett Combo i DataGrid i VB6
    ·Varierande antal typer i VBA
    ·Hur man skapar en CAB i Windows Mobile
    ·Hur du ändrar en OST -filen till PST
    ·Hur Serialisera objekten i NET Remoting
    ·Vad är Python EXE
    ·Hur man skriver en AWK Script
    ·Hur man använder ett musklick Som åtgärd i Visual Ba…
    ·Vad är ett test Harness
    ·Hur man använder en HTML uttalande i en kontrollbox i …
    Copyright © Dator Kunskap http://www.dator.xyz