int main {
struct listNode {
int data ;
strut listNode * forrige ,
spankulere listNode * næste ,
};
tilbagevenden 0;
}
" struct listNode " blok af kode opretter en skabelon for de elementer, der vil udfylde listen . Denne skabelon definerer en listNode som indeholdende tre elementer: et dataelement ( et heltal ) og henvisninger til de forrige og næste punkter på listen . En pointer er en variabel, der har en hukommelse adresse. Pointers bruges til at henvise til andre datastrukturer i dyb hukommelse og til dynamisk allokere hukommelse under kode.
2
erklære variabler, der organiserer listen struktur. Indsæt dette eksempel kode i en tekstfil:
int size ,
listNode * hoved,
listNode * hale
hale = hovedet; < br >
head = hale ,
Disse to pointers er begyndelsen og slutningen af listen , hhv. Ved hjælp af disse pejlemærker , ved programmøren hvor begyndelsen af listen er, og hvor enden er , blot ved at kontrollere, om den aktuelle knudepunkt er "hoved" eller "hale " pointer. De har begge refererer tilbage til hinanden i tilfælde af en tom liste .
3
Opret en simpel algoritme til at tilføje elementer fra linkede liste . Følge dette eksempel kode : Hej
void append ( int num ) {
struct listNode * sporstof = hoved,
struct listNode * newNode = ( struct listNode * ) malloc ( sizeof ( struct listNode )),
newNode -> data = num ;
hvis (hoved == NULL) {
head = newNode ;
hale = newNode ,
newNode -> forrige = hoved,
newNode -> next = hale
}
else {
while ( tracer -> next = hale !)
{ tracer = tracer -> næste ;}
newNode -> forrige = tracer ;
newNode -> next = hale
sporstof -> next = node ,
hale = node ,
}
størrelse + +;
}
Denne kode føjer et node til slutningen af listen . Det begynder ved at skabe en pointer til lederen af listen ( " tracer "). Så det skaber en pointer til en dynamisk tildelte blok af hukommelse afsat til en nyoprettet listNode ( newNode ) og fastsætter data af denne node til heltal " num " . Hvis hovedet punkter at Null ( hvilket betyder, at listen er tom , fordi hovedet peger på ingenting) , så , koden indsætter node i begyndelsen af listen. Ellers ", mens " loop cykler gennem knuder i listen, indtil den når det sidste node. Når " tracer " peger på det sidste element i listen , koden indsætter noden. Den endelige kommando tilføjer til "størrelse" integer , holde styr på elementerne på listen
4
Opret en algoritme til at fjerne og element fra slutningen af listen : .
void removeNode () {
if ( tail = hoved! ) {
struct listNode * ende = hale
tail = tail -> forrige ;
< p> gratis ( ende ),
størrelse - ,
}
}
Denne kode opretter en pointer ( "end ") for det sidste element i listen ( det samme element " hale " peger på ) . Derefter er haleansatsen at pege på elementet umiddelbart før det sidste element ( knuden peget på af " prev " pointer det sidste element ) . Endelig er den hukommelse, der anvendes af sidste node , nævnt af "ende " , frigøres til yderligere brug.