Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hvordan lage en Dobbelt - lenket liste i C Programming
    programmerere bruke lenkede lister som lineært traversable datastrukturer . Dette betyr at programmereren kan starte fra begynnelsen av listen ( som kalles hodet), og gå videre gjennom listen ett element om gangen . Denne metoden for lagring av data gjør det også programmerer for å effektivt legge data til listen, som tilbyr et mer allsidig alternativ til enkelte andre datastrukturer som dynamiske matriser . Dette eksemplet viser hvordan du kan lage en enkel dobbelt - lenket liste , som gjør navigering av listen på to retninger ( forover og bakover ) . Du trenger
    Text Editor
    C /C + + Compiler eller IDE (for eksempel Microsoft Visual Studio )
    Vis flere instruksjoner
    en

    Opprett nodestrukturen at vil fungere som datatypen for lenket liste . I teksteditoren , skriv inn følgende kode :

    # include

    int main {

    struct listNode {

    int data ;

    strut listNode * forrige ;

    strut listNode * neste ;

    };

    return 0 ;

    }

    " struct listNode " blokk med kode oppretter en mal for de elementene som vil fylle listen. Denne malen definerer en listNode som inneholder tre elementer: en data element ( et heltall ) og pekere til de forrige og neste elementene i listen . En peker er en variabel som holder et minne adresse . Pekere brukes for å referere til andre datastrukturer i dyp minne og å dynamisk allokere minne under kjøring av kode.
    2

    Erklærer de variablene som vil organisere listen struktur . Sett dette eksempelet koden på tekstfilen : en

    int størrelse;

    listNode * hodet;

    listNode * hale ;

    hale = hode ;

    hode = hale ;

    Disse to pekere er begynnelsen og slutten av listen , henholdsvis. Ved hjelp av disse pekerne , vet den programmerer hvor begynnelsen av listen er og hvor enden er , ganske enkelt ved å sjekke om den aktuelle node er "hodet" eller " hale "-pekeren . De begge se tilbake til hverandre i tilfelle en tom liste .
    3

    Lag en enkel algoritme for å legge elementer fra lenket liste . Følge dette eksemplet kode :

    void append ( int num ) {

    struct listNode * tracer = hode ;

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

    newNode - > data = num ;

    if ( hode == NULL) {

    hode = newNode ;

    tail = newNode ;

    newNode - > prev = hode ;

    newNode - > neste = hale ;

    }

    else {

    while ( tracer - > neste = hale ! )

    { tracer = tracer - > neste ;}

    newNode - > prev = tracer ;

    newNode - > neste = hale ;

    tracer - > neste = node ;

    hale = node ;

    }

    størrelse + +;

    }

    Denne koden legger til en node til slutten av listen . Den begynner ved å lage en peker til toppen av listen ( " tracer "). Så , skaper det en peker til en dynamisk tildelt blokk med minne avsatt til et nyopprettet listNode ( newNode ) og setter data av at noden til heltall " num " . Hvis hodet peker på null (det vil si den er tom , fordi hodet peker på ingenting ), og deretter , koden setter inn node ved begynnelsen av listen. Ellers "mens " loop går gjennom nodene i listen til å nå den siste noden . Når " tracer " peker på det siste elementet i listen , koden setter noden. Den endelige kommandoen legger til "size" heltall , holde styr på elementene i listen
    4

    Lag en algoritme for å fjerne og element fra slutten av listen : .

    void removeNode ( ) {

    if ( tail = hodet! ) {

    struct listNode * end = hale ;

    hale = tail- > forrige ;
    < p> gratis ( end) ;

    størrelse - ;

    }

    }

    Denne koden oppretter en peker ( " end" ) til det siste element av listen ( samme element " hale " peker på ) . Da er halen satt til å peke på elementet umiddelbart før det siste elementet ( noden peker til den " forrige " peker på det siste elementet ) . Til slutt blir minnet brukes av siste node, referert til av "end " , frigjort for videre bruk.

    früher :

     Weiter:
      Relatert Artike
    ·Grunnleggende Computer Concepts i Turbo C + + 
    ·Hvordan endre en Blocking Socket til ikke-blokkerende 
    ·Hvordan sette standardverdien for WPF ComboBox 
    ·Hvordan skrive et program som vil ut Bestilte Pairs i C…
    ·XCode : Hvordan lage en Droplet 
    ·Hvordan Plasser heltall i stigende rekkefølge hjelp av…
    ·Hvordan skrive ut Output Screen of C Program 
    ·Hvordan bruke strcat funksjon i C + + 
    ·Hvordan beregne antall linjer i en fil ved hjelp CPP 
    ·Hvordan å demontere en DLL 
      Anbefalte artikler
    ·Hvordan flytte til Front lenket liste med Java 
    ·Hvordan Plasser nedtrekkslistene i DataGrids i Asp.NET 
    ·Hvordan gjenkjenne Dot Personene i PHP 
    ·Hvordan lage telefonsamtaler med Visual Basic 
    ·Scion hjulmomentene Specs 
    ·Interaktiv opplæring på Top PHP 
    ·Hvordan konvertere en streng til et nummer i Visual Bas…
    ·Hvordan koden DateDiff Med DateTimePicker i VB.NET 
    ·Hvordan koble til SQLite Med Mongoose 
    ·Hvordan få tilgang Analyser data 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/