栈(Stack)
栈(Stack),是一种有序特殊的线性表,只允许在有序的线性数据集合的一端(称为堆栈顶端,top)进行加入(push)数据和移除(pop)数据的运算。因而按照**后进先出(LIFO, Last In First Out)**的原理运作。
栈的基本操作创建栈,判空,入栈,出栈,获取栈顶元素等,注意栈不支持对指定位置进行删除,插入。
其实非常好理解,我们将栈可以看成一个箱子:
- 往箱子里面放东西叫做入栈(push);
- 往箱子里面取东西叫做出栈(pop);
- 箱子的底部叫做栈底(bottom);
- 箱子的顶部叫做栈顶(top)。
说到栈的特性,肯定会有一句经典的言语来概括:先进后出(LIFO, Last In First Out)。
Stack这种数据结构用途很广泛,在计算机的使用中,大量的运用了栈,比如编译器中的词法分析器、Java虚拟机、软件中的撤销操作(Undo)、浏览器中的回退操作,编译器中的函数调用实现等等。
...