1. If you're a third-year CS student, you should already be getting lots of practice in implementing data structures. If you're not, complain to your professors. They're giving you a terrible education.
If you're not getting practice enough, pick up a good textbook on data structures and algorithms that does contains only pseudocode (or that's in a language you don't use), and try writing their algorithms in a language that you know.
2. Both Python and C/C++ are good languages, but for very different things.
Python is superb for glue code: bringing together modules from multiple sources.
C/C++ is superb for writing individual components that need to work as quickly as possible.
I'd recommend that you learn Python first, then C/C++.
If you're not getting practice enough, pick up a good textbook on data structures and algorithms that does contains only pseudocode (or that's in a language you don't use), and try writing their algorithms in a language that you know.
2. Both Python and C/C++ are good languages, but for very different things.
Python is superb for glue code: bringing together modules from multiple sources.
C/C++ is superb for writing individual components that need to work as quickly as possible.
I'd recommend that you learn Python first, then C/C++.
Good luck!