可以理解成机枪的弹夹,弹夹就是一个栈,子弹一颗一颗压进去,就是压栈,有个顺序特点就是先进后出,后进先出,出栈就是子弹装号了一颗一颗打出来,栈的清理就是把弹夹清空,清掉弹夹里的子弹。堆栈就是把子弹放到弹夹里,堆在那里了,实际意思都差不多。
C语言里栈就可以用数组来做,把数据像子弹一样压数组里就是了。
不是的,是把指针指的位置移动了。而非是删除数据。
当把数据押入栈的时候,先移动指针,指向下一个位置,然后再押入。
当把数据押出栈的时候,先指向下一个位置,然后再押入,再移动指针。
出栈和入栈的操作顺序是相反的。一个先动指针,一个先动数据。
该图为出栈的表示图。画画板画的,粗糙了点,凑合着看吧。