Online C Compiler
Im Compiler öffnen

Deutsche Lernausgabe

Einfach verkettete Liste in C

Erstellen, durchlaufen und löschen Sie durch Zeiger verbundene Knoten.

Im Compiler öffnen

Einfach verkettete Liste in C
Erstellen, durchlaufen und löschen Sie durch Zeiger verbundene Knoten.

Jeder Knoten speichert einen Wert und einen Zeiger auf den nächsten. head bezeichnet den ersten; NULL markiert das Ende oder eine leere Liste. Die Knoten müssen nicht an aufeinanderfolgenden Adressen liegen.

Prüfen Sie malloc vor jedem Schreiben. Erhalten Sie beim Einfügen oder Entfernen die Verbindung zum Rest und aktualisieren Sie head, wenn sich der erste Knoten ändert. Eine Wertsuche durchläuft die Liste in O(N).

Merken Sie sich zum Freigeben den Nachfolger vor free des aktuellen Knotens. Testen Sie eine leere Liste, einen Knoten und mehrere Knoten. Lesen Sie nach der Freigabe keine Felder mehr.

Quellcode

#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node *next;
} Node;

Node* insertHead(Node *head, int val) {
    Node *newNode = (Node *)malloc(sizeof(Node));
    newNode->data = val;
    newNode->next = head;
    return newNode;
}

void printList(Node *head) {
    Node *curr = head;
    while (curr != NULL) {
        printf("%d -> ", curr->data);
        curr = curr->next;
    }
    printf("NULL\n");
}

void freeList(Node *head) {
    Node *curr = head;
    while (curr != NULL) {
        Node *temp = curr;
        curr = curr->next;
        free(temp);
    }
}

int main() {
    Node *head = NULL;
    head = insertHead(head, 30);
    head = insertHead(head, 20);
    head = insertHead(head, 10);

    printf("Linked List: ");
    printList(head);

    freeList(head);
    return 0;
}
Im Compiler öffnen

Erwartetes Ergebnis

Linked List: 10 -> 20 -> 30 -> NULL

Häufige Fragen

Warum bleiben Code und manche Ausgaben englisch?

C-Schlüsselwörter, Bezeichner, Programmkommentare und erwartete Ausgaben bleiben wie im Original, damit der Code ausführbar und die Tests konsistent bleiben. Erklärungen und Aufgabenstellungen sind übersetzt.