php棧的定義和出棧、入棧的實現
阿新 • • 發佈:2018-11-24
棧是線性表的一種,他的特點是後入先出,可以這麼理解,棧就像一個存東西的盒子,先放進去的在最底層,後放進去的在上層,因為上層的東西把底層的東西壓住了,下層的想要出去就必須把上層的先拿開才行。
定義:棧是限制插入和刪除都只能發生在一個位置上進行的線性表,該位置是線性表的末端,叫做棧的頂。
口訣:“後進先出”,是老師講過印象最深的一句話。
實現一個棧
class stack{
const maxsize= 4;
private $stack = [];
private $top = -1; //棧頂
public function __construct(){
$this->stack = $stack;
}
//入棧
public function push($item){
if($this->top>self::maxsize-1)){
return '棧滿了!';
}
$this->stack[++$this->top] = $item;
}
//出棧
public function pop(){
if($this->top==-1){
return '棧空了!';
}
$item = $this->stack[$this->top];
unset($this->stack[$this->top--]);
return $item;
}
//展示棧內容
public function show(){
if($this->top==-1){
return '棧空了';
}
for($i=$this->top;$i>-1;$i--){
echo $this->stack[$i];
}
}
}