Menu
Coddy logo textTech
Ścieżka nauki

Algorytmy i struktury danych w C++

STL to ta ścieżka w postaci biblioteki: std::vector, std::unordered_map, std::priority_queue i std::set to tablica dynamiczna, tablica mieszająca, kopiec i zrównoważone drzewo. Zbuduj każdą z tych struktur w C++ za pomocą klas i wskaźników, a potem korzystaj z STL, wiedząc, ile kosztuje każde wywołanie. Operacji na bitach uczysz się bezpośrednio w C++. Za darmo, w przeglądarce, z certyfikatem w większości kursów.

394 lekcje228 wyzwania702 pytania quizowe

Algorytmy i struktury danych w C++ krok po kroku

39 kursy394 lekcje228 wyzwania702 pytania quizowe

Każdy krok to zestaw istniejących kursów Coddy, a każdy przycisk Start otwiera je w C++. Dwa kursy, które nie są jeszcze prowadzone w C++, są wymienione po krokach.

  1. 1
    Zacznij ten krokZacznijStos, kolejka, drzewo binarne, tablica mieszająca i lista wiązana, każda struktura zbudowana od zera w C++ z klasami i wskaźnikami, a potem użyta do rozwiązywania zadań. Po tym kroku std::stack, std::queue i std::unordered_map to struktury znane ci od środka, bo ich kod piszesz w tym kroku.Zacznij
  2. 2
    Zacznij ten krokZacznijLista dwukierunkowa, kopce i kolejki priorytetowe, drzewa trie, grafy i samorównoważące się drzewo AVL. std::priority_queue jest domyślnie kopcem maksymalnym, podczas gdy kopce w Pythonie i Javie są minimalne. Gdy już napiszesz własny, odwrócenie go przez std::greater staje się oczywiste.Zacznij
  3. 3
    Zacznij ten krokZacznijSortowanie bąbelkowe, przez wybieranie, przez wstawianie, przez scalanie, szybkie, przez kopcowanie, przez zliczanie i pozycyjne, napisane w C++ i oglądane w wizualizatorze. std::sort to zwykle introsort, czyli quicksort z przejściem na heapsort, a std::stable_sort to sortowanie przez scalanie. Ten krok wyjaśnia, dlaczego takie wybory mają sens.Zacznij
  4. 4
  5. 5
    Zacznij ten krokZacznijPrzeszukiwanie wszerz i w głąb, Dijkstra, Bellman-Ford, sortowanie topologiczne, Kruskal i Prim w C++, na grafie zbudowanym w kroku drugim. Kolejka priorytetowa w algorytmie Dijkstry to std::priority_queue z std::greater: kopiec z kroku drugiego w postaci biblioteki.Zacznij
  6. 6
Co dostajesz
Wszystko, czego potrzebujesz do nauki programowania

Ucz się w praktyce

Pisz prawdziwy kod, odpytuj bazy danych, twórz strony internetowe i opanuj prompty AI. Nasze interaktywne lekcje obejmują wszystkie umiejętności, których potrzebuje współczesny programista.

playground.js
Edytor kodu
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Test #1test Case Success icon
Test #2test Case Success icon
Test #3test Case Failure icon
Dane wejściowe
"Alex"
Wynik
"Hello, Coddy! Alex"

Buduj swoją serię

Ucz się regularnie i patrz, jak rosną twoje postępy! Śledź codzienny nawyk programowania, chroń serię dzięki zamrożeniom i zdobywaj nagrody za każdy dzień nauki.

12 dni serii

Wróć jutro, aby utrzymać serię!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

Podwójnie albo nic

Dzień 5 z 7

fire Freeze icon

Zamrożenie serii

2 left

Programuj wszędzie

Zabierz naukę programowania ze sobą! Bez konfiguracji i pobierania plików: po prostu otwórz i zacznij kodować. Dostępne na iOS, Androida i w przeglądarce, z oceną 4,9 gwiazdki.

Python
7Seria
250Wynik
5Energia
Zmienne
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
KONTYNUUJ
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Ścieżka
Cele
Ranking
Profil
4.9
GwiazdkaGwiazdkaGwiazdkaGwiazdkaGwiazdka
Ocena

Nie uczysz się w pojedynkę

Rywalizuj w globalnych rankingach, zapraszaj znajomych po nagrody i świętujcie wspólnie swoje sukcesy. Z przyjaciółmi programuje się lepiej!

Liga Challenger
Liga ChallengerAwansuje 7 najlepszych
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconStrefa awansuleaderboard Arrow Up icon

Każdy sposób nauki

Czytaj, słuchaj, sprawdzaj się, pytaj AI albo wracaj do tego, co już znasz. Każda lekcja dopasowuje się do ciebie.

Wprowadzenie do zmiennych
Audio

Zmienna to nazwany pojemnik przechowujący wartość, do której możesz później odwołać się w programie.

W Pythonie tworzysz ją, pisząc nazwę, znak równości, a potem wartość, którą chcesz zapisać.

Wartość może się zmieniać: ponowne przypisanie po prostu wskazuje nazwą nową wartość.

1xZofia

Zdobądź certyfikat

Zdobywaj certyfikaty za każdy ukończony kurs. Dodaj je do profilu na LinkedIn i CV, aby pokazać pracodawcom swoje umiejętności programistyczne.

CoddyCertyfikat ukończenia
Certyfikat dlaJan Kowalskiza pomyślne ukończenie kursu
python iconPodstawy Pythona
Zweryfikowano
Datasty 2026
LinkedInDodaj do LinkedIn

Dlaczego warto uczyć się algorytmów w C++ z Coddy

  • Język programowania sportowego. Większość zawodników programowania sportowego pisze w C++, ze względu na szybkość i STL, a na prawie każdej rozmowie rekrutacyjnej C++ jest akceptowany. Nauka algorytmów w C++ to nauka dialektu, w którym pisze się zawody.
  • Wskaźniki, które widać. Lista wiązana w C++ to węzły i wskaźniki, rotacja w drzewie AVL to kilka przestawień wskaźników, a destruktor zwalnia zaalokowaną pamięć. Poznajesz struktury tak, jak przechowuje je maszyna, a potem zostawiasz tę pracę STL.
  • Operacje na bitach w ich własnym języku. Kurs operacji na bitach z tej ścieżki jest prowadzony w C++, więc tutaj to nie jest objazd: maski, przesunięcia i sztuczki bitowe pojawiają się w języku, w którym już piszesz. Wyjątki są tylko dwa: programowanie dynamiczne i seria rekrutacyjna w Pythonie, prowadzone w Pythonie i wymienione po krokach.
  • Oceniane jak na rozmowie rekrutacyjnej. Każda lekcja kończy się wyzwaniem w C++ sprawdzanym przez testy, a gdy coś nie przechodzi, Bugsy czyta twój kod i naprowadza cię na poprawkę, nie podając gotowej odpowiedzi. Darmowy certyfikat w większości kursów, każdy do zweryfikowania pod własnym adresem URL.

Najczęstsze pytania o algorytmy i struktury danych w C++

Czy C++ nadaje się do nauki algorytmów i struktur danych?

To najczęstszy wybór w programowaniu sportowym i mocny wybór na rozmowy rekrutacyjne: szybki, z biblioteką standardową, która obejmuje prawie każdą potrzebną strukturę. Ceną jest więcej kodu i więcej sposobów na pomyłkę, od wiszących wskaźników po unieważnione iteratory. Samodzielne zbudowanie struktur na początku, tak jak w tej ścieżce, sprawia, że przestają one zaskakiwać.

Które kontenery STL odpowiadają którym strukturom danych?

std::vector to tablica dynamiczna, std::stack i std::queue to adaptery domyślnie oparte na std::deque, std::list to lista dwukierunkowa, std::unordered_map i std::unordered_set to tablice mieszające, std::priority_queue to kopiec binarny (domyślnie kopiec maksymalny, inaczej niż w Pythonie i Javie), a std::map i std::set to zrównoważone drzewa BST, w praktyce drzewa czerwono-czarne. Nie ma kontenera dla drzewa trie ani grafu, te trzeba napisać samodzielnie.

Czy implementować struktury danych samodzielnie, czy po prostu używać STL?

Jedno i drugie, w tej kolejności. Zaimplementuj każdą strukturę raz, żeby wiedzieć, dlaczego wyszukiwanie w std::unordered_map ma średnio stały czas i dlaczego std::map trzyma klucze posortowane, a potem wszędzie używaj STL. Na zawodach ani na rozmowie nikt nie oczekuje ręcznie napisanego drzewa czerwono-czarnego, oczekuje się wyboru właściwego kontenera i znajomości jego kosztu.

C++ czy Python do algorytmów i struktur danych?

C++, jeśli planujesz programowanie sportowe albo rozmowy, na których jest oczekiwany. Python, jeśli chcesz najkrótszej drogi od pomysłu do działającego kodu. Algorytmy są identyczne, więc wiele osób uczy się w jednym języku, a startuje w zawodach w drugim. Każdy kurs struktur danych w tej ścieżce jest prowadzony w obu.

Które kursy z tej ścieżki nie są prowadzone w C++?

Dwa: programowanie dynamiczne i seria rekrutacyjna w Pythonie, oba prowadzone w Pythonie. Są wymienione po krokach, z linkiem, który otwiera je w Pythonie. Idee przenoszą się bez zmian: w C++ tablica memoizacji to std::vector albo std::unordered_map.

Czy muszę znać C++, zanim zacznę tę ścieżkę?

Przynajmniej klasy, wskaźniki, referencje i std::vector. Jeśli to dla ciebie nowość, kurs C++ w Coddy omawia je najpierw, za darmo, a ta ścieżka zaczyna się tam, gdzie on się kończy.

Inne ścieżki nauki

Te same kursy, ułożone pod inną rolę. Postępy się przenoszą: kurs ukończony na jednej ścieżce liczy się na każdej ścieżce, która go zawiera.

Wszystkie ścieżki nauki
Ilustracja języków programowania w Coddy

Zacznij ścieżkę Algorytmy i struktury danych za darmo

Zacznij naukę