Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grundlæggende Koncept og Struktur | Implementering af datastrukturer
C Structs
Sektion 5. Kapitel 2
single

single

Grundlæggende Koncept og Struktur

Stryg for at vise menuen

En linked list i C er en simpel dynamisk datastruktur, der består af elementer kaldet noder. Hver node indeholder data (såsom en variabel eller et objekt) samt en pointer til den næste node i listen.

linked+list

Her er et eksempel på, hvordan en typisk node i en enkeltbundet linked list ser ud i C:

struct+node
main.c

main.c

1234
struct Node { int data; // data in node struct Node* next; // pointer to next node };

Hvis du i stedet for en pointer til den næste node forsøger blot at oprette en instans af en ny node, vil du få en fejl.

Kompileren vil ikke kunne allokere hukommelse til en sådan struktur, da den indeholder sig selv. Det svarer til at forsøge at se på sig selv udefra med sine egne øjne.

Brugen af en pointer løser dette problem, fordi kompileren ved, hvor meget hukommelse der skal allokeres til en pointervariabel.

Note
Bemærk

Pegeren til den sidste node vil altid være NULL.

Opgave

Swipe to start coding

Opret en funktion createNode, der dynamisk allokerer hukommelse til en ny node i en linked list. Funktionen skal initialisere feltet data med den givne værdi og sætte next-pointeren til NULL.

Opret derefter flere noder i main, forbind dem, og udskriv linked listen.

  1. Inde i createNode allokeres hukommelse til en ny node med malloc og castes til (struct Node*).
  2. Kontroller om hukommelsesallokeringen mislykkedes. Hvis newNode er NULL, udskriv en fejlmeddelelse og returnér NULL.
  3. Initialiser det nye nodes data-felt med parameteren value.
  4. Sæt den nye nodes next-pointer til NULL.
  5. Returnér en pointer til den nyoprettede node.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt