1、什么是栈
假如有一个又细又长的圆筒,圆筒一端封闭,另一端开口;往圆筒里放入乒乓球,先放入的靠近圆筒底部,后放入的靠近圆筒入口,如下图:
如果要想取出这些乒乓球,则只能按照和放入顺序相反的顺序来取,先取出后放入的,再取出先放入的,而不可能把最里面最先放入的乒乓球优先取出
栈(stack)是一种线性数据结构,它就像一个上图所示的放入乒乓球的圆筒容器,栈中的元素只能先入后出(First In Last Out,简称FILO);最早进入的元素存放的位置叫作栈底(bottom),最后进入的元素存放的位置叫作栈顶 (top)
栈这种数据结构既可以用数组来实现,也可以用链表来实现:
栈的数组实现如下图:
栈的链表实