explains in what situation a particular data structure or algorithm is chosen and how it solves the problem

The theoretical books do give examples. You need to understand the theory so you can choose what is best for your situation. If you just want a book that lists the write data structure for every possible situation, then you are out of luck (of course).

If you just want to know what to use without understanding the theory, you don't need a book. You need a forum (like this one!) where you can ask people who do understand the theory.