0Pricing
C Academy · Lekcja

Listy jednokierunkowe

Proszę nauczyć się, jak działają listy wiązane i jak implementować operacje takie jak wstawianie i usuwanie.

Listy jednokierunkowe to bezpłatna lekcja C Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C Academy zawiera 3 lekcji w sumie.

Listy wiązane w języku C

Listy wiązane w języku C

Lista wiązana to dynamiczna struktura danych, w której elementy (węzły) są połączone za pomocą wskaźników.

W tej lekcji dowiedzą się Państwo:

  • Jak działają listy wiązane.
  • Jak wstawiać i usuwać węzły z listy wiązanej.
  • Jakie zalety mają listy wiązane w porównaniu z tablicami.
Listy jednokierunkowe — ilustracja 1

Przykład: definiowanie węzła listy wiązanej

Przykład: definiowanie węzła listy wiązanej

W języku C węzeł listy wiązanej definiuje się za pomocą konstrukcji struct zawierającej pole danych i wskaźnik do następnego węzła.

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

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

int main() {
    struct Node *head = NULL;
    return 0;
}

Wstawianie węzła na początku listy

Wstawianie węzła na początku listy

Aby wstawić nowy węzeł na początku listy wiązanej:

  • Utwórz nowy węzeł.
  • Ustaw jego wskaźnik next na bieżącą głowę listy.
  • Zaktualizuj wskaźnik głowy.

Przykład: wstawianie węzła na początku listy

Przykład: wstawianie węzła na początku listy

Ten program wstawia nowy węzeł na początku listy wiązanej.

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

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

void insertAtBeginning(struct Node **head, int newData) {
    struct Node *newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = newData;
    newNode->next = *head;
    *head = newNode;
}

int main() {
    struct Node *head = NULL;
    insertAtBeginning(&head, 10);
    printf("Inserted: %d\n", head->data);
    return 0;
}

Usuwanie węzła

Usuwanie węzła

Aby usunąć węzeł z listy wiązanej:

  • Znajdź węzeł, który ma zostać usunięty.
  • Zaktualizuj wskaźnik next poprzedniego węzła.
  • Zwolnij pamięć zajmowaną przez usunięty węzeł.

Przykład: usuwanie węzła

Przykład: usuwanie węzła

Ten program usuwa węzeł z listy wiązanej.

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

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

void deleteNode(struct Node **head, int key) {
    struct Node *temp = *head, *prev;
    if (temp != NULL && temp->data == key) {
        *head = temp->next;
        free(temp);
        return;
    }
    while (temp != NULL && temp->data != key) {
        prev = temp;
        temp = temp->next;
    }
    if (temp == NULL) return;
    prev->next = temp->next;
    free(temp);
}

int main() {
    struct Node *head = (struct Node*)malloc(sizeof(struct Node));
    head->data = 10;
    head->next = NULL;
    deleteNode(&head, 10);
    return 0;
}

Zalety list wiązanych

Zalety list wiązanych

Listy wiązane mają kilka zalet w porównaniu z tablicami:

  • Dynamiczny rozmiar (nie trzeba określać rozmiaru z wyprzedzeniem).
  • Wydajne wstawianie i usuwanie elementów.
  • Brak marnowania pamięci wynikającego ze stałego rozmiaru.

Podsumowanie

Podsumowanie

W tej lekcji poznali Państwo:

  • Czym są listy wiązane i jak działają.
  • Jak wstawiać i usuwać węzły.
  • Jakie zalety mają listy wiązane w porównaniu z tablicami.

W następnej części przyjrzymy się stosom i kolejkom w języku C!

Listy jednokierunkowe — ilustracja 9

Często zadawane pytania

Czy lekcja „Listy jednokierunkowe” jest bezpłatna?

Tak — pełny tekst „Listy jednokierunkowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C Academy, przejdź na CoddyKit PRO. Kurs C Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Listy jednokierunkowe”?

Proszę nauczyć się, jak działają listy wiązane i jak implementować operacje takie jak wstawianie i usuwanie. Ćwiczysz C Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C Academy?

Nie wymagamy żadnego doświadczenia. C Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.

Ile czasu zajmuje lekcja „Listy jednokierunkowe”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C Academy?

Tak. Każda lekcja C Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Listy jednokierunkowe
  2. Stosy i kolejki
  3. Drzewa i grafy
← Powrót do C Academy