Algorithmen und Datenstrukturen in Lua
Lua hat eine einzige Datenstruktur, die Tabelle, also machst du jede Struktur auf diesem Pfad daraus: einen Stack aus ihrem Array-Teil, eine Queue mit zwei Indizes, einen Baum aus Tabellen, die auf Tabellen zeigen. Du baust jede davon in Lua, sortierst dann damit, arbeitest rekursiv, durchsuchst Graphen und schließt mit bewerteten Interviewaufgaben ab. Kostenlos, im Browser, mit einem Zertifikat in den meisten Kursen.
377 Lektionen228 Aufgaben702 Quizfragen
- Anfängerfreundlich
KI-gestützte Coding-Hilfe
Praktische, interaktive Lektionen
Audio-Erzählung in jeder Lektion
Quizfragen zum Wissenstest
23 kostenlose Zertifikate entlang des Pfads
DSA in Lua, Schritt für Schritt
Jeder Schritt besteht aus bestehenden Coddy-Kursen, und jeder Klick auf „Starten“ öffnet sie in Lua. Die drei Kurse, die es noch nicht in Lua gibt, sind nach den Schritten aufgeführt.
- 1Schritt 15 Kurse, der Reihe nach
- 2Schritt 2
Datenstrukturen-Reihe, Teil zwei
Diesen Schritt startenStartenDoppelt verkettete Liste, Heaps und Prioritätswarteschlangen, Tries, Graphen und der selbstbalancierende AVL-Baum. In Lua ist ein Trie-Knoten einfach eine Tabelle mit dem nächsten Zeichen als Schlüssel und ein Graph eine Tabelle aus Nachbarlisten, deshalb ist jede Struktur nur so kompliziert wie ihre Idee.Starten5 Kurse, der Reihe nach- Doppelt verkettete Liste - Datenstrukturen-Serie #614 Lektionen6 Aufgaben
- Heaps & Priority Queues - Datenstrukturen-Serie #714 Lektionen6 Aufgaben
- Tries - Datenstrukturen-Serie #814 Lektionen12 Aufgaben
- Graphen - Datenstrukturen-Serie #914 Lektionen12 Aufgaben
- AVL-Baum - Datenstrukturen-Serie #1016 Lektionen6 Aufgaben
- 3Schritt 3
Sortieralgorithmen
Diesen Schritt startenStartenBubble-, Selection-, Insertion-, Merge-, Quick-, Heap-, Counting- und Radixsort, in Lua geschrieben und im Visualizer beobachtet.table.sortist nicht stabil, wie das Lua-Referenzhandbuch festhält; nach diesem Schritt weißt du, warum ein Sortierverfahren auf Stabilität verzichtet und wie ein Index als Tiebreaker sie zurückholt.Starten8 Kurse, der Reihe nach- Bubble Sort11 Lektionen10 Aufgaben
- Selection Sort - DSA-Serie9 Lektionen3 Aufgaben54 Fragen
- Insertion Sort - DSA-Serie9 Lektionen3 Aufgaben
- Merge Sort - DSA-Serie9 Lektionen3 Aufgaben52 Fragen
- Quick Sort - DSA-Serie9 Lektionen3 Aufgaben52 Fragen
- Heap Sort - DSA-Serie9 Lektionen3 Aufgaben54 Fragen
- Counting Sort - DSA-Serie9 Lektionen3 Aufgaben52 Fragen
- Radix Sort - DSA-Serie9 Lektionen3 Aufgaben55 Fragen
- 4Schritt 4
Rekursives DenkenEigene Seite
Diesen Schritt startenStartenRekursionsaufgaben in Lua, das echte Tail Calls hat: Bei einem Aufruf in Endposition,return f(x), verwendet die aufgerufene Funktion den Stack-Eintrag des Aufrufers weiter, sodass eine endrekursive Schleife den Stack nie wachsen lässt. Gewöhnliche tiefe Rekursion endet trotzdem in einem Stacküberlauf. Dynamische Programmierung und Bitmanipulation sind nach den Schritten aufgeführt, da sie in Python und C++ unterrichtet werden.StartenEigene Seite - 5Schritt 5
Graphalgorithmen
Diesen Schritt startenStartenBreiten- und Tiefensuche, Dijkstra, Bellman-Ford, topologische Sortierung, Kruskal und Prim in Lua, auf dem Graphen, den du in Schritt zwei gebaut hast. Lua hat keine Prioritätswarteschlange, also ist der Heap aus Schritt zwei der, den Dijkstra braucht, und die Breitensuche braucht eine Queue, die nietable.remove(t, 1)aufruft.Starten7 Kurse, der Reihe nach- Breadth-First Search – Graph-Algorithmen9 Lektionen3 Aufgaben54 Fragen
- Tiefensuche - Graph-Algorithmen9 Lektionen3 Aufgaben54 Fragen
- Dijkstra-Algorithmus - Graph-Algorithmen9 Lektionen3 Aufgaben54 Fragen
- Bellman-Ford-Algorithmus - Graphenalgorithmen9 Lektionen3 Aufgaben54 Fragen
- Topologische Sortierung - Graph-Algorithmen9 Lektionen3 Aufgaben55 Fragen
- Kruskals Algorithmus - Graph-Algorithmen9 Lektionen3 Aufgaben57 Fragen
- Prims Algorithmus - Graphenalgorithmen9 Lektionen3 Aufgaben55 Fragen
- 6Schritt 6
Interviewpraxis
Diesen Schritt startenStartenZehn Interview-Challenge-Pakete und zwei Aufgabensammlungen in Lua, per Testfällen bewertet: unbekannte Probleme, ohne Tutorial gelöst, mit Tabellen, geformt zu dem, was jedes Problem braucht.Starten12 Kurse, der Reihe nach- Interview Coding-Challenges – Paket I3 Lektionen3 Aufgaben
- Interview Coding-Challenges – Paket II3 Lektionen3 Aufgaben
- Interview-Coding-Challenges – Paket III3 Lektionen3 Aufgaben
- Interview-Coding-Challenges – Paket IV3 Lektionen3 Aufgaben
- Interview-Coding-Challenges – Paket V3 Lektionen3 Aufgaben
- Interview Coding-Challenges – Paket VI3 Lektionen3 Aufgaben
- Interview-Coding-Challenges – Paket VII3 Lektionen3 Aufgaben
- Interview-Coding-Challenges – Paket VIII3 Lektionen3 Aufgaben
- Interview Coding-Challenges – Paket IX3 Lektionen3 Aufgaben
- Interview Coding Challenges - X3 Lektionen3 Aufgaben
- Programmieraufgaben32 Lektionen31 Aufgaben
- Programmieraufgaben: Band 225 Lektionen24 Aufgaben
Learn by Doing
Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.
Build Your Coding Streak
Stay consistent and watch your progress grow! Track your daily coding habit, protect your streak with freeze days, and earn rewards for showing up every day.
12 days streak
Return tomorrow to keep your streak!
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
Double or Nothing
Day 5 of 7
Streak Freeze
2 left
Code Anywhere, Anytime
Take your coding journey on the go! No setup, no downloads - just open and start coding. Available on iOS, Android and Web with 4.9 star ratings.
You're Not Alone in This
Compete on global leaderboards, invite friends to earn rewards, and celebrate each other's wins. Coding is better with friends!
Every way to learn
Read, listen, test yourself, ask the AI, or look up anything you've already covered. Every lesson meets you where you are.
A variable is a named container that stores a value you can reference later in your program.
In Python, you create one by writing the name, an equals sign, then the value you want to store.
The value can change over time - reassigning the name simply points it to a new value.
Prove Your Skills
Earn certificates for every course you complete. Add them to your LinkedIn profile and resume to showcase your coding expertise to employers.
Warum DSA in Lua mit Coddy lernen
- Eine Struktur, alle Strukturen. Eine Lua-Tabelle ist Array-Teil und Hash-Teil in einem, und sonst ist nichts eingebaut: kein Listentyp, kein Set, keine Queue und kein Heap. In Lua besteht jede Struktur aus Tabellen, die auf Tabellen zeigen, und klarer wirst du nie sehen, was eine verkettete Liste oder ein Baum wirklich ist.
- Für Roblox, Spiele und Plugins. Lua steckt in Roblox (als Luau), im Game-Scripting, in der Neovim-Konfiguration und in Redis-Skripten, und Spielcode ist Datenstrukturcode: Ein Inventar ist eine Hashtabelle, eine Zugreihenfolge eine Queue, Wegfindung eine Graphsuche. Die Strukturen in Lua zu lernen heißt, sie in der Sprache zu lernen, in der du ohnehin skriptest.
- Fast der ganze Pfad in Lua. Jede Datenstruktur, jedes Sortierverfahren, jeder Graphalgorithmus, jede Rekursionsaufgabe und jedes Interviewpaket wird in Lua unterrichtet. Drei werden in einer anderen Sprache unterrichtet und sind nach den Schritten aufgeführt, jeweils mit einem Link: dynamische Programmierung und die Python-Interviewreihe in Python sowie Bitmanipulation in C++. Alles, was in Lua bleibt, besteht aus Tabellen, vom ersten Stack bis zur letzten Interviewaufgabe.
- Bewertet wie im Interview. Jede Lektion endet mit einer Lua-Aufgabe, die per Testfällen geprüft wird, und schlägt sie fehl, liest Bugsy deinen Code und führt dich zur Lösung, ohne sie zu verraten. Ein kostenloses Zertifikat in den meisten Kursen, jedes unter seiner eigenen URL verifizierbar.
Häufige Fragen zu DSA in Lua
Eignet sich Lua für Datenstrukturen und Algorithmen?
nil statt eines Fehlers, und der Längenoperator #t ist nur bei einer Sequenz ohne nil-Lücken verlässlich. In Lua finden nur wenige Interviews statt; wenn eins dein Ziel ist, gibt es die Interviewpakete auch in der Sprache, die du dort verwenden wirst.Wie baut man aus einer Lua-Tabelle einen Stack und eine Queue?
table.insert(t, x) ist Push und table.remove(t) ist Pop. Eine Queue braucht mehr Sorgfalt, weil table.remove(t, 1) jedes verbleibende Element um eine Stelle nach vorn verschiebt, sodass jedes Entnehmen O(n) kostet. Führe stattdessen zwei Indizes, first und last: Füge bei last + 1 hinzu, lies bei first, setze diesen Platz auf nil und rücke weiter, und das Entnehmen braucht konstante Zeit. In Schritt eins baust du beides.Warum liefert #t in Lua manchmal die falsche Länge?
#t in Lua manchmal die falsche Länge?# eine Grenze der Tabelle liefert: einen Index n, bei dem t[n] nicht nil ist und t[n + 1] schon. Eine echte Sequenz hat genau eine Grenze, ihre Länge; setzt du ein nil in die Mitte, kann es mehrere geben, und # darf jede davon liefern. Speichere also nie nil in einem Array, das du mit # misst, und führe in Strukturen mit Lücken, etwa einer Queue mit zwei Indizes, die Größe selbst mit.Spielen Datenstrukturen beim Roblox-Scripting eine Rolle?
#-Operator, deshalb lässt sich das, was du hier baust, direkt übertragen.Welche Kurse auf diesem Pfad werden nicht in Lua unterrichtet?
&, |, << und >> von C++ hat und sowohl XOR als auch NOT als ~ schreibt.