Algorytmy i struktury danych w Lua
Lua ma jedną strukturę danych, tabelę, więc każdą strukturę z tej ścieżki tworzysz właśnie z niej: stos z jej części tablicowej, kolejkę z dwoma indeksami, drzewo z tabel wskazujących na tabele. W tej ścieżce budujesz każdą z nich w Lua, potem sortujesz, stosujesz rekurencję i przeszukujesz z nimi grafy, a na koniec rozwiązujesz oceniane zadania rekrutacyjne. Za darmo, w przeglądarce, z certyfikatem w większości kursów.
377 lekcje228 wyzwania702 pytania quizowe
- Dla początkujących
Pomoc AI przy programowaniu
Praktyczne, interaktywne lekcje
Narracja audio w każdej lekcji
Quizy sprawdzające wiedzę
Darmowe certyfikaty na tej ścieżce: 23
Algorytmy i struktury danych w Lua krok po kroku
Każdy krok to zestaw istniejących kursów Coddy, a każdy przycisk Start otwiera je w Lua. Trzy kursy, które nie są jeszcze prowadzone w Lua, są wymienione po krokach.
- 1Krok 1Kursy po kolei: 5
- 2Krok 2
Seria Struktury danych, część druga
Zacznij ten krokZacznijLista dwukierunkowa, kopce i kolejki priorytetowe, drzewa trie, grafy i samorównoważące się drzewo AVL. W Lua węzeł drzewa trie to po prostu tabela z kluczami będącymi kolejnymi znakami, a graf to tabela list sąsiadów, więc każda struktura jest dokładnie tak skomplikowana jak jej idea.ZacznijKursy po kolei: 5- Lista dwukierunkowa – struktury danych, część 614 lekcje6 wyzwania
- Kopce i kolejki priorytetowe — struktury danych, część 714 lekcje6 wyzwania
- Drzewa Trie — struktury danych #814 lekcje12 wyzwania
- Grafy – struktury danych, seria nr 914 lekcje12 wyzwania
- Drzewo AVL – struktury danych, seria #1016 lekcje6 wyzwania
- 3Krok 3
Algorytmy sortowania
Zacznij ten krokZacznijSortowanie bąbelkowe, przez wybieranie, przez wstawianie, przez scalanie, szybkie, przez kopcowanie, przez zliczanie i pozycyjne, napisane w Lua i oglądane w wizualizatorze.table.sortnie jest stabilne, jak podaje podręcznik referencyjny Lua. Po tym kroku wiesz, dlaczego sortowanie rezygnuje ze stabilności i jak przywraca ją indeks rozstrzygający remisy.ZacznijKursy po kolei: 8- Sortowanie bąbelkowe11 lekcje10 wyzwania
- Sortowanie przez wybieranie – seria DSA9 lekcje3 wyzwania54 pytania
- Sortowanie przez wstawianie – seria DSA9 lekcje3 wyzwania
- Sortowanie przez scalanie – seria DSA9 lekcje3 wyzwania52 pytania
- Sortowanie szybkie — seria DSA9 lekcje3 wyzwania52 pytania
- Sortowanie przez kopcowanie — seria DSA9 lekcje3 wyzwania54 pytania
- Sortowanie przez zliczanie – seria DSA9 lekcje3 wyzwania52 pytania
- Sortowanie radixowe — seria DSA9 lekcje3 wyzwania55 pytania
- 4Krok 4
Myślenie rekurencyjneOsobna strona
Zacznij ten krokZacznijWyzwania z rekurencji w Lua, która ma prawdziwe wywołania ogonowe: przy wywołaniu w pozycji ogonowej,return f(x), wywoływana funkcja korzysta z miejsca na stosie wywołującej, więc pętla oparta na rekurencji ogonowej nigdy nie powiększa stosu. Zwykła głęboka rekurencja wciąż kończy się przepełnieniem stosu. Programowanie dynamiczne i operacje na bitach są wymienione po krokach, bo prowadzi się je w Pythonie i C++.ZacznijOsobna strona - 5Krok 5
Algorytmy grafowe
Zacznij ten krokZacznijPrzeszukiwanie wszerz i w głąb, Dijkstra, Bellman-Ford, sortowanie topologiczne, Kruskal i Prim w Lua, na grafie zbudowanym w kroku drugim. Lua nie ma kolejki priorytetowej, więc kopiec z kroku drugiego to ten, którego potrzebuje algorytm Dijkstry, a przeszukiwanie wszerz potrzebuje kolejki, która nigdy nie wywołujetable.remove(t, 1).ZacznijKursy po kolei: 7- Przeszukiwanie wszerz — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Przeszukiwanie w głąb — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Algorytm Dijkstry — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Algorytm Bellmana-Forda — algorytmy grafowe9 lekcje3 wyzwania54 pytania
- Sortowanie topologiczne – algorytmy grafowe9 lekcje3 wyzwania55 pytania
- Algorytm Kruskala — algorytmy grafowe9 lekcje3 wyzwania57 pytania
- Algorytm Prima – algorytmy grafowe9 lekcje3 wyzwania55 pytania
- 6Krok 6
Praktyka rekrutacyjna
Zacznij ten krokZacznijDziesięć pakietów wyzwań rekrutacyjnych i dwa banki zadań programistycznych w Lua, oceniane przez testy: nieznane zadania rozwiązywane bez samouczka, z tabelami przekształcanymi w to, czego potrzebuje każde zadanie.ZacznijKursy po kolei: 12- Wyzwania programistyczne na rozmowę kwalifikacyjną – zestaw I3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną — pakiet II3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowy kwalifikacyjne — pakiet III3 lekcje3 wyzwania
- Zadania rekrutacyjne z programowania – pakiet IV3 lekcje3 wyzwania
- Zadania rekrutacyjne z programowania — pakiet V3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – pakiet VI3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną — zestaw VII3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – zestaw VIII3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – pakiet IX3 lekcje3 wyzwania
- Wyzwania programistyczne na rozmowę kwalifikacyjną – X3 lekcje3 wyzwania
- Zadania programistyczne32 lekcje31 wyzwania
- Zadania programistyczne: Tom 225 lekcje24 wyzwania
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.
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ę!
January 2026
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
Podwójnie albo nic
Dzień 5 z 7
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.
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!
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.
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ść.
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.
Dlaczego warto uczyć się algorytmów w Lua z Coddy
- Jedna struktura, wszystkie struktury. Tabela w Lua to część tablicowa i część haszująca w jednym, a nic więcej nie jest wbudowane: nie ma typu listy, zbioru, kolejki ani kopca. W Lua każda struktura to tabele wskazujące na tabele, co daje najczytelniejszy obraz tego, czym naprawdę jest lista wiązana czy drzewo.
- Dla Roblox, gier i wtyczek. Lua napędza Roblox (jako Luau), skrypty w grach, konfigurację Neovima i skrypty Redisa, a kod gry to kod struktur danych: ekwipunek to tablica mieszająca, kolejność tur to kolejka, wyznaczanie ścieżki to przeszukiwanie grafu. Nauka struktur w Lua to nauka w języku, w którym już piszesz skrypty.
- Prawie cała ścieżka w Lua. Każda struktura danych, sortowanie, algorytm grafowy, wyzwanie z rekurencji i pakiet rekrutacyjny jest prowadzony w Lua. Trzy kursy są prowadzone w innych językach i wymienione po krokach, każdy z linkiem: programowanie dynamiczne i seria rekrutacyjna w Pythonie oraz operacje na bitach w C++. Wszystko, co zostaje w Lua, zbudowane jest z tabel, od pierwszego stosu do ostatniego zadania rekrutacyjnego.
- Oceniane jak na rozmowie rekrutacyjnej. Każda lekcja kończy się wyzwaniem w Lua 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 Lua
Czy Lua nadaje się do nauki algorytmów i struktur danych?
nil zamiast błędu, a operator długości #t jest wiarygodny tylko dla sekwencji bez dziur z nil. Niewiele rozmów rekrutacyjnych odbywa się w Lua, więc jeśli taka rozmowa jest twoim celem, pakiety rekrutacyjne są dostępne także w języku, którego tam użyjesz.Jak zbudować stos i kolejkę z tabeli w Lua?
table.insert(t, x) wkłada, a table.remove(t) zdejmuje. Kolejka wymaga więcej uwagi, bo table.remove(t, 1) przesuwa każdy pozostały element o jedno miejsce w dół, więc każde zdjęcie z kolejki to O(n). Zamiast tego trzymaj dwa indeksy, first i last: dodawaj pod last + 1, czytaj pod first, ustaw to miejsce na nil i przesuń indeks, a zdejmowanie z kolejki staje się operacją o stałym czasie. W kroku pierwszym budujesz oba.Dlaczego #t w Lua czasem podaje złą długość?
#t w Lua czasem podaje złą długość?# zwraca granicę tabeli: indeks n, dla którego t[n] nie jest nil, a t[n + 1] jest. Prawidłowa sekwencja ma dokładnie jedną granicę, swoją długość. Wstaw nil w środek, a granic może być kilka i # może zwrócić dowolną z nich. Dlatego nigdy nie przechowuj nil w tablicy, którą mierzysz przez #, a w strukturach z lukami, takich jak kolejka z dwoma indeksami, śledź rozmiar samodzielnie.Czy struktury danych mają znaczenie przy skryptach w Roblox?
#, więc to, co tu budujesz, przenosi się wprost.Które kursy z tej ścieżki nie są prowadzone w Lua?
&, |, << i >> co C++, a zarówno XOR, jak i NOT zapisuje jako ~.