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.