Hii All! I am practicing for 3 months on the codeforces and still I am unable to solve B and C problems in running Div2 contests, what data structures and algorithms should I learn for becoming able to solve B and C problems or especially for C. Sorry for my bad English, this is not my first language.
You don't need to know data structures and algorithms for B and C. I'd suggest doing virtual contests if you don't like the traditional way of practicing
Simple ones like binary search and prefix sums might be useful sometimes.
I think you should practice more until you can solve B easily and fast (under 30 mins). Then you can start doing virtual contest for under-pressure-practicing.
If you find a problem is good and can be applied many times. You can do it 3 times
First time is for understanding problem + editorial
Second time is for doing it + high-ranker's code
Third time is for doing faster + search for more problems similiar to it
I would suggest to practice the ladders of a2oj according to your rating range
Also check out E869120's tutorial to practice competitive programming, i found that very helpful!