栈是“先进后出”的数据结构,其实非常好记,就像这手枪的弹夹一样:
最先装入的子弹最后被打出来。
还记得对象的析构方法不?多个对象的析构方法被调用的顺序就像“栈”的数据结构一样(最先实例化的对象最后被“析构”)。
链栈:
栈 和 单链表 也可以组合成一个新的数据结构——链栈。
栈的链式存储结构称为链栈,是运算受限的单链表。其插入和删除操作只能在表头位置上进行。
链栈说白了还是“栈”,如下图这样:
栈中的元素是个单链表,链栈没有必要像单链表那样附加头结点,栈顶指针top就是链表的头指针。
模拟链栈的PHP类代码:
看下效果: