I do not recommend using any the sites below if you are a student studying in a University or college, unless you have a lot of spare time. While you are a student, you should be focusing on the assignments you are given (whether you like them or not). A part of improving is developing the skill to be able to focus and solve problems you do NOT like. Your primary goal should be to complete your studies as soon as possible and building skill on the way.
Also, a real world assignment is always more useful and it will teach you more important things. However, If you have spare time and want to try to solve problems in order to improve your programming skills, you may try to solve problems mentioned in the sites below:
A huge web site with a lot of problems, categorized by their level of difficulty. The problems there will keep you busy for a lot of time.
Specifically for data structures look here.
It is freely accessible to anyone. There are a lot problems to solve but unfortunately they are not categorized by their level of difficulty.
However there are many good problems to solve since you are not considered a beginner if you are reading this.
A useful site for python.
It includes basic information too, but it covers data structures pretty well.