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.

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!

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
- Listy jednokierunkowe
- Stosy i kolejki
- Drzewa i grafy