Grunnleggende Konsept og Struktur
En lenket liste i C er en enkel dynamisk datastruktur som består av elementer kalt noder. Hver node inneholder data (for eksempel en variabel eller et objekt) samt en peker til neste node i listen.
Slik ser en typisk node i en enkelt lenket liste ut i C:
main.c
1234struct Node { int data; // data in node struct Node* next; // pointer to next node };
Hvis du i stedet for en peker til neste node prøver å opprette en ny node-instans direkte, vil du få en feil.
Kompilatoren klarer ikke å allokere minne for en slik struktur, siden den inneholder seg selv. Det er som å prøve å se på seg selv utenfra med sine egne øyne.
Å bruke en peker løser dette problemet fordi kompilatoren vet hvor mye minne som skal allokeres for en pekervariabel.
Pekeren til den siste noden vil alltid være NULL.
Takk for tilbakemeldingene dine!
single
Grunnleggende Konsept og Struktur
Sveip for å vise menyen
En lenket liste i C er en enkel dynamisk datastruktur som består av elementer kalt noder. Hver node inneholder data (for eksempel en variabel eller et objekt) samt en peker til neste node i listen.
Slik ser en typisk node i en enkelt lenket liste ut i C:
main.c
1234struct Node { int data; // data in node struct Node* next; // pointer to next node };
Hvis du i stedet for en peker til neste node prøver å opprette en ny node-instans direkte, vil du få en feil.
Kompilatoren klarer ikke å allokere minne for en slik struktur, siden den inneholder seg selv. Det er som å prøve å se på seg selv utenfra med sine egne øyne.
Å bruke en peker løser dette problemet fordi kompilatoren vet hvor mye minne som skal allokeres for en pekervariabel.
Pekeren til den siste noden vil alltid være NULL.
Sveip for å begynne å kode
Lag en funksjon createNode som dynamisk allokerer minne for en ny node i en lenket liste. Funksjonen skal initialisere data-feltet med den gitte verdien og sette next-pekeren til NULL.
Opprett deretter flere noder i main, lenk dem sammen, og skriv ut den lenkede listen.
- Inne i
createNode, alloker minne for en ny node ved å brukemallocog kast til(struct Node*). - Sjekk om minneallokeringen mislyktes. Hvis
newNodeerNULL, skriv ut en feilmelding og returnerNULL. - Initialiser
data-feltet til den nye noden med parameterenvalue. - Sett
next-pekeren til den nye noden tilNULL. - Returner pekeren til den nylig opprettede noden.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår