Die Standardbibliothek von Rust hat die meisten Strukturen (Vec, VecDeque, HashMap, BTreeMap, BinaryHeap), und der Borrow Checker redet bei denen mit, die du selbst schreibst: Eine einfach verkettete Liste ist Option<Box<Node>>, und ein Baum mit Elternverweisen braucht Rc, RefCell und Weak. Auf diesem Pfad baust du jede Struktur in Rust, sortierst dann damit, arbeitest rekursiv, durchsuchst Graphen und schließt mit bewerteten Interviewaufgaben ab. Kostenlos, im Browser, mit einem Zertifikat in den meisten Kursen.
Jeder Schritt besteht aus bestehenden Coddy-Kursen, und jeder Klick auf „Starten“ öffnet sie in Rust. Die drei Kurse, die es noch nicht in Rust gibt, sind nach den Schritten aufgeführt.
1
Schritt 1
Datenstrukturen-Reihe, Teil eins
Diesen Schritt startenStartenStack, Queue, Binärbaum, Hashtabelle und verkettete Liste, jeweils in Rust von Grund auf gebaut und danach zum Lösen von Aufgaben genutzt. In Rust ist ein Knoten, der den nächsten besitzt, eine Option<Box<Node>>, deshalb beginnt sich Ownership hier natürlich anzufühlen, und danach weißt du, was Vec, VecDeque und HashMap für dich erledigen.Starten
Diesen Schritt startenStartenDoppelt verkettete Liste, Heaps und Prioritätswarteschlangen, Tries, Graphen und der selbstbalancierende AVL-Baum. Die doppelt verkettete Liste ist in Rust die schwierige, weil zu jedem Knoten zwei Verweise führen; nach diesem Schritt ist BinaryHeap ein Heap, den du selbst geschrieben hast, standardmäßig mit dem größten Element zuerst, und BTreeMap ein geordneter Baum, den du verstehst.Starten
Diesen Schritt startenStartenBubble-, Selection-, Insertion-, Merge-, Quick-, Heap-, Counting- und Radixsort, in Rust geschrieben und im Visualizer beobachtet. sort ist stabil und sort_unstable meist schneller; nach diesem Schritt kannst du sagen, was Stabilität kostet und wann du auf sie verzichtest.Starten
Diesen Schritt startenStartenRekursionsaufgaben in Rust. Ein rekursiver Typ braucht eine Box, bevor der Compiler ihm eine Größe gibt, und eine rekursive Funktion darüber prüft per Pattern Matching jeden Fall, Some oder None, so wie sich Basisfall und rekursiver Fall trennen. Rust garantiert keine Tail-Call-Optimierung, deshalb führt eine ausreichend tiefe Rekursion zu einem Stacküberlauf, der das Programm abbricht. Dynamische Programmierung und Bitmanipulation sind nach den Schritten aufgeführt, da sie in Python und C++ unterrichtet werden.StartenEigene Seite15 Lektionen15 Aufgaben
5
Schritt 5
Graphalgorithmen
Diesen Schritt startenStartenBreiten- und Tiefensuche, Dijkstra, Bellman-Ford, topologische Sortierung, Kruskal und Prim in Rust, auf dem Graphen, den du in Schritt zwei gebaut hast. Die Prioritätswarteschlange für Dijkstra ist in Rust ein BinaryHeap aus Reverse((distance, node)): der Heap aus Schritt zwei, zum Min-Heap umgedreht.Starten
Diesen Schritt startenStartenZehn Interview-Challenge-Pakete und zwei Aufgabensammlungen in Rust, per Testfällen bewertet: unbekannte Probleme, ohne Tutorial gelöst und durch den Borrow Checker gebracht, was ein Beweis ganz eigener Art ist.Starten
Schreibe echten Code, frage Datenbanken ab, erstelle Websites und meistere KI-Prompts. Unsere interaktiven Lektionen decken alle Fähigkeiten ab, die moderne Entwickler brauchen.
playground.js
Code-Editor
1const greeting ="Hello, Coddy!"
2function sayHi(name) {
3return greeting +" "+ name
4}
5
Test #1
Test #2
Test #3
Eingabe
"Alex"
Ausgabe
"Hello, Coddy! Alex"
Baue deine Serie auf
Bleib konsequent und sieh zu, wie dein Fortschritt wächst! Verfolge deine tägliche Programmiergewohnheit, schütze deine Serie mit Einfrieroptionen und verdiene Belohnungen für jeden Tag.
12 Tage Serie
Komm morgen zurück, um deine Serie zu halten!
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
Doppelt oder Nichts
Tag 5 von 7
Serie Einfrieren
2 left
Überall coden
Nimm deine Programmierreise mit! Keine Einrichtung, keine Downloads: einfach öffnen und loslegen. Verfügbar auf iOS, Android und Web mit 4,9-Sterne-Bewertungen.
Tritt auf globalen Bestenlisten an, lade Freunde ein, um Belohnungen zu verdienen, und feiert gemeinsam eure Erfolge. Programmieren macht mit Freunden mehr Spaß!
Herausforderer-LigaTop 7 steigen auf
1
Alex7+ Days
2840
2
Jordan7+ Days
2650
3
Sam7+ Days
2420
4
Casey
2180
5
Morgan7+ Days
1950
Aufstiegszone
Jeder Lernweg, alles dabei
Lies, höre, teste dich, frag die KI oder schlage nach, was du schon gelernt hast. Jede Lektion passt sich dir an.
Einführung in Variablen
Audio
Eine Variable ist ein benannter Container, der einen Wert speichert, auf den du später im Programm verweisen kannst.
In Python erstellst du eine, indem du den Namen, ein Gleichheitszeichen und dann den Wert schreibst.
Der Wert kann sich ändern. Eine neue Zuweisung verweist den Namen einfach auf einen neuen Wert.
1xSarah
Werde zertifiziert
Verdiene Zertifikate für jeden abgeschlossenen Kurs. Füge sie deinem LinkedIn-Profil und Lebenslauf hinzu, um Arbeitgebern deine Programmierkenntnisse zu zeigen.
Abschlusszertifikat
Hiermit wird bestätigt, dassMax Mustermannerfolgreich abgeschlossen hat
Python-Grundlagen
DatumJan. 2026
Zu LinkedIn hinzufügen
Warum DSA in Rust mit Coddy lernen
Ownership dort, wo es am schwersten ist. Bei verketteten Listen und Bäumen beißen Rusts Regeln zuerst zu: Jeder Wert hat genau einen Besitzer, und diese Strukturen wollen Knoten, die aufeinander zeigen. Beim Schreiben werden Box, Option::take, Rc<RefCell<T>> und Weak von Syntax zu Entscheidungen, weshalb ein bekannter Leitfaden zur Sprache Learning Rust With Entirely Too Many Linked Lists heißt.
Collections mit klaren Kosten. Vec<T> ist dein Stack, VecDeque<T> ein Ringpuffer und deine Queue, HashMap eine Hashtabelle, die mit zufälligem Seed gegen absichtliche Kollisionen geschützt ist, BTreeMap ein geordneter B-Baum und BinaryHeap<T> ein Max-Heap. Baue die Strukturen einmal selbst, und du weißt, welche ein Problem verlangt und warum Dijkstra seine Einträge in Reverse verpackt.
Fast der ganze Pfad in Rust. Jede Datenstruktur, jedes Sortierverfahren, jeder Graphalgorithmus, jede Rekursionsaufgabe und jedes Interviewpaket wird in Rust 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++. Bitmanipulation lässt sich mit einem einzigen Unterschied in der Schreibweise übertragen: Rust schreibt NOT als !x und zählt gesetzte Bits mit count_ones().
Bewertet wie im Interview. Jede Lektion endet mit einer Rust-Aufgabe, die per Testfällen geprüft wird, und schlägt sie fehl oder kompiliert nicht, 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 Rust
Eignet sich Rust für Datenstrukturen und Algorithmen?
Zum Benutzen sehr gut: Die Standard-Collections sind schnell und gut dokumentiert, sort ist stabil, und sicheres Rust schließt hängende Zeiger und Data Races schon zur Kompilierzeit aus, ohne Garbage Collector. Zum Schreiben zeigerbasierter Strukturen ist es schwerer als C oder Java, denn Ownership verbietet geteilte, veränderliche Verweise, solange du nicht bewusst zu Rc und RefCell greifst, und eine doppelt verkettete Liste oder ein Baum mit Elternzeigern besteht genau daraus. Diese Schwierigkeit ist zugleich die Lektion: Sobald du sie in Rust schreiben kannst, weißt du genau, wem was gehört.
Welche Rust-Collections entsprechen welchen Datenstrukturen?
Vec<T> ist ein dynamisches Array und dein Stack, VecDeque<T> ist ein Ringpuffer und deine Queue, HashMap und HashSet sind Hashtabellen (standardmäßig mit SipHash, das absichtlichen Kollisionen standhält, auf Kosten von etwas Geschwindigkeit), BTreeMap und BTreeSet sind geordnete B-Bäume, BinaryHeap<T> ist ein Max-Heap, und LinkedList<T> ist eine doppelt verkettete Liste, die du einem Vec oder einer VecDeque selten vorziehen wirst. Einen Trie- oder Graph-Typ gibt es nicht; die baust du selbst.
Warum ist eine verkettete Liste in Rust so schwer zu schreiben?
Weil jeder Wert genau einen Besitzer hat. Eine einfach verkettete Liste passt zu dieser Regel: Jeder Knoten besitzt den nächsten über Option<Box<Node>>. Eine doppelt verkettete Liste oder ein Baum mit Elternverweisen passt nicht, weil zu jedem Knoten zwei Zeiger führen, also greifst du zu Rc<RefCell<Node>> mit Weak für die Rückverweise oder hältst die Knoten in einem Vec und verknüpfst sie über Indizes. Learning Rust With Entirely Too Many Linked Lists gibt es, weil so viele genau hier hängen bleiben.
Wie bekomme ich in Rust einen Min-Heap?
BinaryHeap<T> ist ein Max-Heap, also verpackst du jedes Element in std::cmp::Reverse: Füge Reverse(x) ein, und das kleinste x kommt zuerst heraus. Für Dijkstra fügst du Reverse((distance, node)) ein, und das Tupel wird zuerst nach der Distanz verglichen. Wenn du in Schritt zwei selbst einen Heap geschrieben hast, ist das Umdrehen seiner Reihenfolge offensichtlich.
Welche Kurse auf diesem Pfad werden nicht in Rust unterrichtet?
Drei: Dynamische Programmierung und die Python-Interviewreihe werden in Python unterrichtet, Bitmanipulation in C++. Sie sind nach den Schritten aufgeführt, jeweils mit einem Link, der den Kurs in seiner eigenen Sprache öffnet. Eine Memo-Tabelle ist in Rust ein Vec oder eine HashMap, und ein Ganzzahlüberlauf löst im Debug-Build eine Panic aus, deshalb macht ein Bit-Trick, der auf Wrapping setzt, das mit wrapping_add oder wrapping_mul explizit.
Muss ich Rust können, bevor ich mit diesem Pfad anfange?
Mindestens Ownership, Borrowing, Structs, Enums und Option; Box und Traits helfen. Wenn das neu für dich ist, bringt dich Coddys Rust-Kurs zuerst dorthin, kostenlos, und dieser Pfad setzt dort an, wo er endet.
Bekomme ich ein Zertifikat für den Datenstrukturen & Algorithmen-Pfad?
Ja. Schließe jeden Schritt ab, und du erhältst ein kostenloses Zertifikat für den ganzen Datenstrukturen & Algorithmen-Pfad. Es listet jeden Kurs auf, den du unterwegs abgeschlossen hast, und verlinkt das Zertifikat jedes Kurses, damit jeder jede genannte Fähigkeit prüfen kann. Du kannst es zu deinem LinkedIn-Profil hinzufügen. Es ist ein Abschlusszertifikat von Coddy, kein akkreditierter Abschluss.
Weitere Lernpfade
Dieselben Kurse, für eine andere Rolle geordnet. Der Fortschritt bleibt erhalten: Ein auf einem Pfad abgeschlossener Kurs zählt auf jedem Pfad, der ihn enthält.