Menu
Coddy logo textTech
Lernpfad

Algorithmen und Datenstrukturen in C#

Die generischen Collections von C# enthalten schon den Großteil dieses Pfads: Stack<T>, Queue<T>, Dictionary<TKey,TValue>, LinkedList<T> und SortedSet<T> sind ein Stack, eine Queue, eine Hashtabelle, eine doppelt verkettete Liste und ein balancierter Suchbaum. Baue jede Struktur selbst in C#, sortiere dann damit, arbeite rekursiv, durchsuche Graphen und schließe mit bewerteten Interviewaufgaben ab. Kostenlos, im Browser, mit einem Zertifikat in den meisten Kursen.

377 Lektionen228 Aufgaben702 Quizfragen

DSA in C#, Schritt für Schritt

38 Kurse377 Lektionen228 Aufgaben702 Quizfragen

Jeder Schritt besteht aus bestehenden Coddy-Kursen, und jeder Klick auf „Starten“ öffnet sie in C#. Die drei Kurse, die es noch nicht in C# gibt, sind nach den Schritten aufgeführt.

  1. 1
    Diesen Schritt startenStartenStack, Queue, Binärbaum, Hashtabelle und verkettete Liste, jeweils in C# von Grund auf gebaut und danach zum Lösen von Aufgaben genutzt. Danach sind Stack<T>, Queue<T> und Dictionary<TKey,TValue> Strukturen, die du selbst geschrieben hast, und du weißt, was jeder ihrer Aufrufe kostet.Starten
  2. 2
    Diesen Schritt startenStartenDoppelt verkettete Liste, Heaps und Prioritätswarteschlangen, Tries, Graphen und der selbstbalancierende AVL-Baum. LinkedList<T> ist die erste davon, fertig mitgeliefert; nach diesem Schritt ist SortedSet<T> ein balancierter Baum, den du verstehst, ein Rot-Schwarz-Baum, wo deiner ein AVL-Baum ist, und einen Heap kannst du auf jeder .NET-Version schreiben.Starten
  3. 3
    Diesen Schritt startenStartenBubble-, Selection-, Insertion-, Merge-, Quick-, Heap-, Counting- und Radixsort, in C# geschrieben und im Visualizer beobachtet. Array.Sort und List<T>.Sort sind ein Introsort, also ein Quicksort, der auf Heapsort und Insertionsort zurückgreift, und nicht stabil, während OrderBy aus LINQ stabil ist; nach diesem Schritt weißt du, warum.Starten
  4. 4
    Diesen Schritt startenStartenRekursionsaufgaben in C#, wie jede Lektion per Testfällen bewertet. In .NET endet eine Rekursion, die nie ihren Basisfall erreicht, in einer StackOverflowException, die sich nicht abfangen lässt, deshalb braucht jede rekursive Methode zuallererst ihren Ausstieg. Dynamische Programmierung und Bitmanipulation sind nach den Schritten aufgeführt, da sie in Python und C++ unterrichtet werden.StartenEigene Seite
  5. 5
    Diesen Schritt startenStartenBreiten- und Tiefensuche, Dijkstra, Bellman-Ford, topologische Sortierung, Kruskal und Prim in C#, auf dem Graphen, den du in Schritt zwei gebaut hast. Dijkstra braucht eine Prioritätswarteschlange, und C# hat erst mit .NET 6 eine bekommen, deshalb ist der Heap aus Schritt zwei der, den du kennen solltest.Starten
  6. 6
Das bekommst du
Alles, was du zum Programmierenlernen nutzt

Learn by Doing

Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.

playground.js
Code Editor
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
Input
"Alex"
Output
"Hello, Coddy! Alex"

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!

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

Double or Nothing

Day 5 of 7

fire Freeze icon

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.

Python
7Streak
250Score
5Energy
Variables
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
CONTINUE
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
Journey
Goals
Leaderboard
Profile
4.9
StarStarStarStarStar
Rating

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!

Challenger League
Challenger LeagueTop 7 advance
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 iconPromotion zoneleaderboard Arrow Up icon

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.

Intro to Variables
Audio

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.

1xSarah

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.

CoddyCertificate of Completion
This certifies thatJohn Doehas successfully completed
python iconPython Fundamentals
Verified
DateJan 2026
LinkedInAdd to LinkedIn

Warum DSA in C# mit Coddy lernen

  • Kenne die Kosten jeder Collection. List<T> ist ein dynamisches Array, also verschiebt Insert(0, x) jedes Element dahinter; Dictionary<TKey,TValue> ist eine Hashtabelle, im Mittel mit konstanter Zeit und nur so gut wie das GetHashCode deiner Schlüssel. Wenn du die Strukturen selbst baust, sind diese Fakten kein Trivia-Wissen mehr, sondern entscheiden, welche Collection du wählst.
  • Die Sprache von Unity und .NET. Mit C# werden Unity-Spiele geskriptet, und sehr viel Unternehmenssoftware läuft auf .NET; beide stützen sich auf dieselben Strukturen. Eine Tilemap ist ein Graph, Wegfindung ist eine Graphsuche, und eine Zugreihenfolge oder ein Ereignisplan ist eine Prioritätswarteschlange, also sprechen Algorithmus und Codebasis dieselbe Sprache.
  • Fast der ganze Pfad in C#. Jede Datenstruktur, jedes Sortierverfahren, jeder Graphalgorithmus, jede Rekursionsaufgabe und jedes Interviewpaket wird in C# 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 ist von den dreien aus C# heraus am leichtesten nachzuvollziehen, denn C# schreibt die bitweisen Operatoren von C++ mit denselben Symbolen.
  • Bewertet wie im Interview. Jede Lektion endet mit einer C#-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 C#

Eignet sich C# für Datenstrukturen und Algorithmen?

Ja. Es liest sich ähnlich wie Java: Typen machen jeden Knoten, jede Referenz und jeden generischen Parameter explizit, und System.Collections.Generic deckt die meisten Strukturen auf diesem Pfad ab. Zwei Gewohnheiten lohnen sich von Anfang an. LINQ ist knapp, aber jedes OrderBy ist eine Sortierung und jedes Where eine Schleife, also verbirgt es die Kosten, die du zu zählen lernst; und Array.Sort ist nicht stabil, was immer dann zählt, wenn gleiche Schlüssel ihre Reihenfolge behalten müssen.

Welche .NET-Collections entsprechen welchen Datenstrukturen?

List<T> ist ein dynamisches Array, Stack<T> und Queue<T> basieren auf Arrays, LinkedList<T> ist eine doppelt verkettete Liste, Dictionary<TKey,TValue> und HashSet<T> sind Hashtabellen, und SortedDictionary<TKey,TValue> und SortedSet<T> sind Rot-Schwarz-Bäume, balanciert wie der AVL-Baum, den du in Schritt zwei baust. SortedList<TKey,TValue> ist ein Paar von Arrays, das nach Schlüsseln sortiert gehalten wird, und seit .NET 6 ist PriorityQueue<TElement,TPriority> ein Min-Heap auf Array-Basis. Eine Trie- oder Graph-Klasse gibt es nicht; die schreibst du selbst.

Sollte ein Baum- oder Listenknoten in C# eine Klasse oder ein Struct sein?

Eine Klasse. Ein struct ist ein Werttyp: Er kann überhaupt kein Feld seines eigenen Typs enthalten, und wo immer er kopiert wird, lässt eine Änderung an der Kopie das Original unberührt. Eine Klasseninstanz ist eine Referenz, also können Knoten aufeinander zeigen, wie es eine verkettete Liste oder ein Baum braucht. Structs nimmst du besser für kleine Werte, etwa eine Gitterkoordinate oder eine gewichtete Kante.

Hat C# eine Prioritätswarteschlange?

Seit .NET 6 ja: PriorityQueue<TElement,TPriority>, ein Min-Heap auf Array-Basis, in den jedes Element mit seiner eigenen Priorität eingereiht wird; übergib einen IComparer<TPriority>, der die Reihenfolge umkehrt, und du bekommst einen Max-Heap. .NET Framework und ältere Runtimes haben keine, weshalb C#-Entwickler lange ihren eigenen Heap geschrieben oder ein SortedSet<T> zu einem umgebogen haben, und weshalb es immer noch zählt, einen schreiben zu können. In Schritt zwei tust du das.

Welche Kurse auf diesem Pfad werden nicht in C# 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 C# ein Array oder ein Dictionary, und Bit-Tricks lassen sich sauber übertragen, bis hin zu der Unterscheidung, die auch C++ macht: >> behält bei einem int das Vorzeichen und füllt bei einem uint mit Nullen auf.

Muss ich C# können, bevor ich mit diesem Pfad anfange?

Mindestens Klassen, Methoden, Arrays, Schleifen und generische Collections wie List<T>. Wenn das neu für dich ist, bringt dich Coddys C#-Kurs zuerst dorthin, kostenlos, und dieser Pfad setzt dort an, wo er endet.

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.

Alle Lernpfade
Coddy programming languages illustration

Starte den Datenstrukturen & Algorithmen-Pfad kostenlos

Jetzt lernen