Writing data structures in
all languages is an advanced topic, if by "data structures" you mean data structures sufficiently generic and powerful enough to be used by a very wide variety of programmers. Do not be confused by the fact that you were able to bash together a linked-list library in C for some task or other that seemed to work for you; it almost certainly has bugs, suboptimal memory usage if not outright leaks, inefficiencies, and an API that would render it not very popular as a generic library for everyone to use. The reason is that "sufficiently generic and powerful enough to be used by a wide variety of programmers" is intrinsically a very high bar.
Under every language you use are some frightfully subtle data structures, and the easier they are to use (i.e., Python dicts), the more frightfully subtle they are under the hood.
(Since certain people have developed a knee twitch with the word "generic" lately, let me note that I mean generic in its most, ahem, generic sense, not specifically the programming language research term.)