之前介绍过,“队列”是一种特殊的线性表,这里介绍另一种特殊的线性表“栈”。什么是堆栈?栈是一种后进先出的数据结构,只允许对链表的一端进行操作。允许操作的那一端称为栈顶。栈有两种基本操作,元素入栈和元素出栈,操作示例图。代码实现下面我们来实现上面的两个基本操作,以及实际应用中常用的其他几个操作。push压入栈pop弹出栈peek栈顶元素previewlength栈中存储的元素数clear清空栈dataStore[$this->top++]=$data;}/***出栈*@returnmixed*/publicfunctionpop(){return$this->dataStore[--$this->top];}/***预览,查看栈顶元素,但不弹出*@returnmixed*/publicfunctionpeek(){return$this->dataStore[$this->top-1];}/***堆栈长度*@returnint*/publicfunctionlength(){return$this->top;}/***空栈元素*/publicfunctionclear(){$this->top=0;$this->dataStore=[];}}示例$stack=newStack();$堆栈->推(1);$stack->push(2);$stack->push(3);echo"stacklength:",$stack->length(),PHP_EOL;$stack->pop();$stack->pop();$堆栈->推(4);echo"栈顶:",$stack->peek(),PHP_EOL;$stack->clear();echo"栈长度:",$stack->length(),PHP_EOL;
