Problem solving in general, algorithms, graph theory



Stacks are quite useful, you can use them to implement recursion in a language that doesn’t support it, and it’s used for a lot of other things such as parsing and evaluating Reverse Polish Notation expressions.
Stacks are also easy to implement, a simple list can act as one, and stacks are fast, their time complexity for the two operations is O(1).