Is C++ good for data structures and algorithms?
It is the most common choice for competitive programming and a strong one for interviews: fast, with a standard library that covers almost every structure you need. The cost is more code and more ways to go wrong, from dangling pointers to invalidated iterators. Building the structures yourself first, as this path does, is how those stop being surprises.
Which STL containers match which data structures?
std::vector is a dynamic array, std::stack and std::queue are adaptors over std::deque by default, std::list is a doubly linked list, std::unordered_map and std::unordered_set are hash tables, std::priority_queue is a binary heap (a max-heap by default, unlike Python's and Java's), and std::map and std::set are balanced binary search trees, in practice red-black trees. There is no trie or graph container; you write those.
Should I implement data structures myself or just use the STL?
Both, in that order. Implement each structure once, so you know why std::unordered_map lookups are constant time on average and why std::map keeps its keys sorted, then use the STL everywhere after. In a contest or an interview nobody expects a hand-written red-black tree; they expect you to choose the right container and know its cost.
C++ or Python for DSA?
C++ if you plan to do competitive programming or interview where it is expected; Python if you want the shortest path from idea to working code. The algorithms are identical, so many people learn in one and compete in the other. Every data structure course on this path is taught in both.
Which courses on this path are not taught in C++?
Two: dynamic programming and the Python interview series, both taught in Python. They are listed after the steps, with a link that opens them in Python. The ideas carry over unchanged: in C++, a memo table is a std::vector or a std::unordered_map.
Do I need to know C++ before starting this path?
Classes, pointers, references and std::vector, at least. If those are new, Coddy's C++ course covers them first, free, and this path picks up where it ends.