Menu
Coddy logo textTech
Lernpfad

Algorithmen und Datenstrukturen in Go

Go gibt dir Slices und Maps und überlässt den Rest dir: keinen Stack-, Queue- oder Set-Typ und einen Heap in container/heap, der nichts tut, bis du heap.Interface implementierst. Auf diesem Pfad baust du jede Struktur in Go mit Structs und Zeigern, 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

DSA in Go, Schritt für Schritt

38 Kurse377 Lektionen228 Aufgaben702 Quizfragen

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

  1. 1
    Diesen Schritt startenStartenStack, Queue, Binärbaum, Hashtabelle und verkettete Liste, jeweils in Go von Grund auf gebaut und danach zum Lösen von Aufgaben genutzt. Danach sind ein Slice als Stack und eine Map als Set Entscheidungen, die du begründen kannst, und den Queue-Typ, den Go nicht hat, hast du selbst geschrieben.Starten
  2. 2
    Diesen Schritt startenStartenDoppelt verkettete Liste, Heaps und Prioritätswarteschlangen, Tries, Graphen und der selbstbalancierende AVL-Baum. container/list ist die erste davon, fertig mitgeliefert; nach diesem Schritt ergeben die fünf Methoden von heap.Interface Sinn, weil du selbst einen Heap gebaut hast, und den balancierten Baum, den Go nie mitgeliefert hat, kannst du selbst bauen.Starten
  3. 3
    Diesen Schritt startenStartenBubble-, Selection-, Insertion-, Merge-, Quick-, Heap-, Counting- und Radixsort, in Go geschrieben und im Visualizer beobachtet. sort.Slice nutzt seit Go 1.19 Pattern-defeating Quicksort, slices.Sort ebenfalls, und keine der beiden Funktionen ist stabil, weshalb es sort.SliceStable gibt; nach diesem Schritt weißt du, was jedes dieser Wörter bedeutet.Starten
  4. 4
    Diesen Schritt startenStartenRekursionsaufgaben in Go, wo die Stacks von Goroutinen klein beginnen und bei Bedarf wachsen, sodass eine Rekursion, die Tausende Aufrufe tief geht, selten überläuft. Ein fehlender Basisfall stößt trotzdem an die Obergrenze, standardmäßig 1 GB Stack auf 64-Bit-Systemen, und endet in einem fatalen Fehler statt in einem langsamen Programm. 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 Go, auf dem Graphen, den du in Schritt zwei gebaut hast. Die Prioritätswarteschlange für Dijkstra ist in Go container/heap über einem Slice deines eigenen Typs: der Heap aus Schritt zwei, hinter einem Interface.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 Go mit Coddy lernen

  • Die Strukturen, die Go dir überlässt. Go hat Slices und Maps eingebaut und hört dort auf: Ein Stack ist ein Slice, an das du mit append anhängst und das du neu zuschneidest, ein Set ist eine map[T]struct{}, und einen Queue-Typ oder Baum gibt es überhaupt nicht. Zu wissen, wie man die fehlenden schreibt und was jede Slice-Operation kostet, gehört dazu, Go zu können.
  • Structs und Zeiger, nichts versteckt. Go hat keine Klassen: Ein Knoten ist ein struct mit einem Zeiger auf den nächsten, und Methoden hängen am Typ. Verkettete Listen und Bäume sehen genau nach dem aus, was sie sind, Generics (seit Go 1.18) machen sie für jeden Elementtyp wiederverwendbar, und dank Garbage Collector gibt es kein malloc und kein free zu verwalten.
  • Fast der ganze Pfad in Go. Jede Datenstruktur, jedes Sortierverfahren, jeder Graphalgorithmus, jede Rekursionsaufgabe und jedes Interviewpaket wird in Go 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 liest sich aus Go heraus natürlich, denn Go hat die Operatoren &, |, ^, << und >> von C++ und schreibt NOT als ^x.
  • Bewertet wie im Interview. Jede Lektion endet mit einer Go-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 Go

Eignet sich Go für Datenstrukturen und Algorithmen?

Ja. Es kompiliert zu schnellem nativem Code, seine Syntax ist so klein, dass du beim Lesen vor allem den Algorithmus siehst, und Generics (seit Go 1.18) machen einen typisierten Stack oder Heap wiederverwendbar. Der Preis ist eine schlanke Standardbibliothek: Über Slices, Maps, container/list und container/heap hinaus schreibst du die Strukturen selbst, und auf einem Lernpfad ist das der Sinn der Sache. Auf Go läuft außerdem ein Großteil der heutigen Cloud-Infrastruktur, Docker und Kubernetes eingeschlossen, was es zu einer naheliegenden Interviewsprache für Backend-Rollen macht.

Welche Go-Typen und Pakete entsprechen welchen Datenstrukturen?

Ein Slice ist ein dynamisches Array und mit append und Reslicing auch dein Stack; eine Map ist eine Hashtabelle, und map[T]struct{} ist das idiomatische Set; container/list ist eine doppelt verkettete Liste; und container/heap betreibt einen binären Heap über jedem Typ, der heap.Interface implementiert. Einen Queue-Typ, Baum, Trie oder Graphen gibt es nicht, die baust du also selbst, in den Schritten eins und zwei.

Wie funktioniert container/heap in Go?

Du implementierst heap.Interface auf einem eigenen Slice-Typ: Len, Less und Swap aus sort.Interface, dazu Push und Pop, die nur am Ende des Slices anhängen und entfernen. Dann rufst du die Paketfunktionen heap.Push und heap.Pop auf, nie deine eigenen Methoden, und sie verschieben die Elemente nach oben und unten, damit die Ordnung erhalten bleibt. Das liest sich seltsam, bis du selbst einen Heap geschrieben hast, und das tust du in Schritt zwei.

Warum durchläuft Go eine Map jedes Mal in einer anderen Reihenfolge?

Weil Go die Iterationsreihenfolge von Maps absichtlich zufällig macht, damit kein Programm von ihr abhängig wird. Eine Hashtabelle hat in keiner Sprache eine sinnvolle Reihenfolge; Go sorgt nur dafür, dass du es merkst. Wenn die Reihenfolge zählt, etwa bei einer Ausgabe, die ein Test vergleicht, sammle die Schlüssel in einem Slice und sortiere es, oder führe neben der Map ein Slice mit.

Welche Kurse auf diesem Pfad werden nicht in Go 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 Go ein Slice oder eine Map, und Go hat einen Bitoperator, der C++ fehlt: &^, AND NOT, der im linken Operanden jedes Bit löscht, das im rechten gesetzt ist.

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

Mindestens Structs, Zeiger, Slices, Maps und Methoden; Generics helfen, und die kannst du unterwegs lernen. Wenn das neu für dich ist, bringt dich Coddys Go-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