0Pricing
C Academy · Lekcja

Drzewa i grafy

Proszę poznać struktury drzew i grafów służące do reprezentowania danych hierarchicznych i sieciowych.

Drzewa i grafy to bezpłatna lekcja C Academy na CoddyKit. To lekcja 3 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.

Drzewa i grafy w języku C

Drzewa i grafy w języku C

Drzewa i grafy to nieliniowe struktury danych używane do reprezentowania danych hierarchicznych i sieciowych.

W tej lekcji dowiedzą się Państwo:

  • Jak są zbudowane drzewa i grafy.
  • Jak implementować drzewo binarne w języku C.
  • Jak reprezentować grafy za pomocą list sąsiedztwa i macierzy sąsiedztwa.
Drzewa i grafy — ilustracja 1

Czym jest drzewo?

Czym jest drzewo?

Drzewo to hierarchiczna struktura danych składająca się z węzłów.

Najważniejsze pojęcia:

  • Korzeń - Węzeł znajdujący się na najwyższym poziomie.
  • Rodzic i potomek - Węzły połączone bezpośrednio.
  • Liść - Węzeł, który nie ma potomków.

Przykład: węzeł drzewa binarnego

Przykład: węzeł drzewa binarnego

W języku C węzeł drzewa binarnego definiuje się za pomocą struktury struct zawierającej wskaźniki do lewego i prawego potomka.

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

struct Node {
    int data;
    struct Node *left, *right;
};

struct Node* createNode(int data) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = data;
    newNode->left = newNode->right = NULL;
    return newNode;
}

int main() {
    struct Node *root = createNode(10);
    return 0;
}

Przechodzenie drzewa binarnego

Przechodzenie drzewa binarnego

Metody przechodzenia:

  • Inorder (LNR) - Lewy potomek, węzeł, prawy potomek.
  • Preorder (NLR) - Węzeł, lewy potomek, prawy potomek.
  • Postorder (LRN) - Lewy potomek, prawy potomek, węzeł.

Przykład: przechodzenie inorder

Przykład: przechodzenie inorder

Ten program wykonuje przechodzenie inorder drzewa binarnego.

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

struct Node {
    int data;
    struct Node *left, *right;
};

void inorder(struct Node *root) {
    if (root != NULL) {
        inorder(root->left);
        printf("%d ", root->data);
        inorder(root->right);
    }
}

int main() {
    struct Node *root = malloc(sizeof(struct Node));
    root->data = 10;
    root->left = NULL;
    root->right = NULL;
    inorder(root);
    return 0;
}

Czym jest graf?

Czym jest graf?

Graf to zbiór węzłów (wierzchołków) połączonych krawędziami.

Grafy mogą być:

  • Skierowane - Krawędzie mają określony kierunek.
  • Nieskierowane - Krawędzie nie mają kierunku.

Reprezentacja grafu

Reprezentacja grafu

Grafy można reprezentować za pomocą:

  • Macierzy sąsiedztwa - Tablicy dwuwymiarowej przedstawiającej połączenia.
  • Listy sąsiedztwa - Listy, w której każdy węzeł wskazuje swoich sąsiadów.

Przechodzenie grafu

Przechodzenie grafu

Typowe metody przechodzenia:

  • Przeszukiwanie wszerz (BFS) - Odwiedza wszystkich sąsiadów przed przejściem głębiej.
  • Przeszukiwanie w głąb (DFS) - Bada graf tak głęboko, jak to możliwe, a następnie cofa się.

Podsumowanie

Podsumowanie

W tej lekcji nauczyli się Państwo:

  • Jak zbudowane są drzewa i grafy.
  • Jak wykonywać przechodzenie drzew.
  • Jak reprezentować grafy i wykonywać ich przechodzenie.

To kończy sekcję dotyczącą struktur danych w języku C!

Drzewa i grafy — ilustracja 10

Często zadawane pytania

Czy lekcja „Drzewa i grafy” jest bezpłatna?

Tak — pełny tekst „Drzewa i grafy” 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 „Drzewa i grafy”?

Proszę poznać struktury drzew i grafów służące do reprezentowania danych hierarchicznych i sieciowych. Ć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 3 z 3.

Ile czasu zajmuje lekcja „Drzewa i grafy”?

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