栈,ADT,又称LAST OF FIRST OUT,可以很直观的看出栈是一种遵从后入先出的原则的数据结构。
我们可以很形象的将栈比喻成一个长形的桶,桶每次只能放一个球,放入第一个球后,再放入第二个球,第二个球会堆在第一个球的上方,而将球堆入到桶内的这个动作对应于将数据压入到栈中达到这个操作,这个操作称为压栈(push),将球取出的这个操作相当于弹出操作,即弹出(pop),但是弹出的始终是栈顶的数据,同时还有一个操作成为top,即查看栈顶的数据但是不做任何操作,还有的操作成为isempty,isempty操作是用于判断栈是否是空栈的操作,其返回的是布尔值即true或者false。
栈的应用
1,栈可以用于各种编辑器比如图像编辑器,视频编辑器的撤回操作
2,栈可以用作function call,即递归操作
3编译器也会用到栈,但编译时编译器会找{和(对应的}和) ,这种操作需要用到栈。