Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundkonzept und Struktur | Implementierung von Datenstrukturen
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C-Strukturen Meistern

bookGrundkonzept und Struktur

Eine verkettete Liste in C ist eine einfache dynamische Datenstruktur, die aus Elementen besteht, die als Knoten bezeichnet werden. Jeder Knoten enthält Daten (wie eine Variable oder ein Objekt) sowie einen Zeiger auf den nächsten Knoten in der Liste.

So sieht ein typischer Knoten in einer einfach verketteten Liste in C aus:

main.c

main.c

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

Wenn Sie anstelle eines Zeigers auf den nächsten Knoten einfach eine Instanz eines neuen Knotens erstellen, erhalten Sie einen Fehler.

Der Compiler kann für eine solche Struktur keinen Speicher reservieren, da sie sich selbst enthält. Es ist, als würde man versuchen, sich selbst mit den eigenen Augen von außen zu betrachten.

Die Verwendung eines Zeigers löst dieses Problem, da der Compiler weiß, wie viel Speicher für eine Zeigervariable reserviert werden muss.

Note
Hinweis

Der Zeiger des letzten Knotens ist immer NULL.

Aufgabe

Swipe to start coding

Erstellen einer Funktion createNode, die dynamisch Speicher für einen neuen Knoten einer verketteten Liste alloziert. Die Funktion soll das Feld data mit dem angegebenen Wert initialisieren und den Zeiger next auf NULL setzen.

Erstellen Sie anschließend in main mehrere Knoten, verknüpfen Sie diese miteinander und geben Sie die verkettete Liste aus.

  1. Allokieren Sie innerhalb von createNode Speicher für einen neuen Knoten mit malloc und casten Sie ihn zu (struct Node*).
  2. Überprüfen Sie, ob die Speicherallokation fehlgeschlagen ist. Falls newNode NULL ist, geben Sie eine Fehlermeldung aus und geben Sie NULL zurück.
  3. Initialisieren Sie das Feld data des neuen Knotens mit dem Parameter value.
  4. Setzen Sie den Zeiger next des neuen Knotens auf NULL.
  5. Geben Sie den Zeiger auf den neu erstellten Knoten zurück.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

bookGrundkonzept und Struktur

Swipe um das Menü anzuzeigen

Eine verkettete Liste in C ist eine einfache dynamische Datenstruktur, die aus Elementen besteht, die als Knoten bezeichnet werden. Jeder Knoten enthält Daten (wie eine Variable oder ein Objekt) sowie einen Zeiger auf den nächsten Knoten in der Liste.

So sieht ein typischer Knoten in einer einfach verketteten Liste in C aus:

main.c

main.c

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

Wenn Sie anstelle eines Zeigers auf den nächsten Knoten einfach eine Instanz eines neuen Knotens erstellen, erhalten Sie einen Fehler.

Der Compiler kann für eine solche Struktur keinen Speicher reservieren, da sie sich selbst enthält. Es ist, als würde man versuchen, sich selbst mit den eigenen Augen von außen zu betrachten.

Die Verwendung eines Zeigers löst dieses Problem, da der Compiler weiß, wie viel Speicher für eine Zeigervariable reserviert werden muss.

Note
Hinweis

Der Zeiger des letzten Knotens ist immer NULL.

Aufgabe

Swipe to start coding

Erstellen einer Funktion createNode, die dynamisch Speicher für einen neuen Knoten einer verketteten Liste alloziert. Die Funktion soll das Feld data mit dem angegebenen Wert initialisieren und den Zeiger next auf NULL setzen.

Erstellen Sie anschließend in main mehrere Knoten, verknüpfen Sie diese miteinander und geben Sie die verkettete Liste aus.

  1. Allokieren Sie innerhalb von createNode Speicher für einen neuen Knoten mit malloc und casten Sie ihn zu (struct Node*).
  2. Überprüfen Sie, ob die Speicherallokation fehlgeschlagen ist. Falls newNode NULL ist, geben Sie eine Fehlermeldung aus und geben Sie NULL zurück.
  3. Initialisieren Sie das Feld data des neuen Knotens mit dem Parameter value.
  4. Setzen Sie den Zeiger next des neuen Knotens auf NULL.
  5. Geben Sie den Zeiger auf den neu erstellten Knoten zurück.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 2
single

single

some-alt