"栈和队列是两种特殊的线性表,它们限制在表的一端或两端进行CRUD。因此,统称为限定性数据结构(Restricted Data Structure)"。
栈
栈是一种特殊的线性表,其操作限定在表的一端进行
栈的定义
栈(Stack)又称堆栈。通常,把允许插入和删除的一端称为栈顶(top),相应的是栈底(bottom)。其中,不含任何元素的栈称为空栈。
对栈的操作
插入操作称入栈(PUSH),删除称出栈或退栈(POP)
栈的特点
先进后出(First In Last Out)或后进先出(Last In First Out),FILO/LIFO。
栈的形象可以理解为"摞起来的象棋",只有在顶部操作才会是最方便的。
这是a1,a2,...,an,依次入栈后的情形,a1为栈底元素,an为栈顶元素,栈顶是随着出栈和入栈动态变化,每一次出栈的总是当前栈顶元素,所以对于顺序来说只能是an,...,a2,a1。