But anyways I think you read the title kind of opposite. Instead I think it is meant to reflect that algorithms and data structures, which in general have many uses, are here being used for the purpose of problem solving. I.e. to let readers know that it is specific.
My point is just that in math, you can reason about an object even if you can't concretely represent it. For example, you can figure out properties of a number or function that you don't know enough about to write down. But in programming you can't use an object unless you have a concrete representation of it, and often getting that concrete representation (in both math and programming) requires a kind of work which is quite different than the work of abstractly describing or specifying it. So it's maybe not always appropriate to call an abstract description of a mathematical object a "data structure", since often it's more analogous to (say) the interface of an object than it's implementation.