什么是堆栈,它的工作原理和具体应用场景有哪些?