Warum Datenstrukturen in C lernen?
Weil C nichts versteckt. Ohne eingebaute Liste, Map oder Queue implementierst du jede Struktur aus Speicherblöcken und Zeigern, und genau das ist die Struktur. Danach sind Javas HashMap und Pythons dict dieselben Ideen, bei denen dir die Speicherverwaltung abgenommen wird, und du kannst einschätzen, was sie kosten.
Was sollte ich können, bevor ich Datenstrukturen in C lerne?
Zeiger, Structs, Arrays sowie malloc und free. Vor allem Zeiger: Eine verkettete Liste ist eine Kette von Feldern struct node *next, und ein Binärbaum hat zwei davon pro Knoten. Wenn Zeiger sich noch wackelig anfühlen, behandelt Coddys C-Kurs sie zuerst, kostenlos.
Wie implementiert man eine Hashtabelle in C?
Mit einem Array von Buckets, einer Hashfunktion, die einen Schlüssel in einen Index verwandelt, und einer Regel für zwei Schlüssel, die im selben Bucket landen: meist eine verkettete Liste pro Bucket (Verkettung) oder das Sondieren nach dem nächsten freien Platz. Wird die Tabelle über einen festgelegten Füllfaktor hinaus voll, reservierst du ein größeres Array und fügst alles neu ein. Der Hashtabellen-Kurs in Schritt eins baut eine von Grund auf.
Ist C eine gute Sprache für Coding-Interviews?
Außerhalb von Embedded- und Systemrollen führen nur wenige Kandidaten Interviews in C, denn mitten im Interview eine Hashtabelle von Grund auf zu schreiben, kostet Zeit, die andere Sprachen dir schenken. Das Wissen überträgt sich aber vollständig, und C++ ist nur ein kleiner Schritt entfernt: dieselbe Syntax, plus die STL. Ein üblicher Weg ist, die Strukturen in C zu lernen und die Interviewpakete dann in C++, Java oder Python zu machen, die dieser Pfad alle anbietet.
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. Bitmanipulation ist von den dreien aus C heraus am leichtesten zu verfolgen: C++ hat die Operatoren &, |, ^, ~, << und >> von C unverändert übernommen.
Sollte ich Datenstrukturen in C oder in C++ lernen?
C, um die Strukturen zu verstehen, C++, um sie zu nutzen. In C baust du alles selbst, deshalb lehren so viele Studiengänge das Fach darin; in C++ baust du jede Struktur einmal und greifst dann zur STL, deshalb nutzen Wettbewerbsprogrammierer es. Wer in C anfängt und zu C++ wechselt, verliert nichts.