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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Beherskelse af C Structs

bookGrundlæggende Koncept og Struktur

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.

Her er, hvordan en typisk node i en enkeltbundet liste ser ud i C:

main.c

main.c

copy
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

Pointeren i 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 linket liste. Funktionen skal initialisere feltet data med den givne værdi og sætte next-pekeren til NULL.

Opret derefter flere noder i main, kæd dem sammen, og udskriv den linkede liste.

  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-peker til NULL.
  5. Returnér pekeren til den nyoprettede node.

Løsning

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

Suggested prompts:

Can you explain how to define a node structure for a linked list in C?

Why does using a pointer in the node structure solve the memory allocation problem?

Can you give an example of how to create and link nodes in a linked list?

close

bookGrundlæ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.

Her er, hvordan en typisk node i en enkeltbundet liste ser ud i C:

main.c

main.c

copy
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

Pointeren i 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 linket liste. Funktionen skal initialisere feltet data med den givne værdi og sætte next-pekeren til NULL.

Opret derefter flere noder i main, kæd dem sammen, og udskriv den linkede liste.

  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-peker til NULL.
  5. Returnér pekeren 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

some-alt