//用數組來實現堆棧
/*$stacklist = array();
array_push($stacklist, "a");
array_push($stacklist, "b");
array_push($stacklist, "c");
$data = array_pop($stacklist);
var_dump($data);*/
/*
節點信息
*/
class node {
public $value; //節點的數據
function __construct($value) {
$this->value = $value;
}
}
/*
堆棧的實現
*/
class stack{
public $last; //指向尾部元素
public $stacklist; //堆棧元素列表
private $size=0; //隊列節點個數
//出棧
function pop( ){
if($this->size == 0){
return null;
exit('error! the stack is empty!');
}
$data = $this->last;
array_pop($this->stacklist);
$this->last = end ($this->stacklist);
$this->size--;
return $data;
}
//入棧
function push ($value ){
$node=new node($value);
$this->last = $node;
$this->stacklist[] = $node;
$this->size++;
}
//返回棧頂元素,但是不出棧
function end(){
//此處代碼等你來完善
}
function size(){
return $this->size;
}
}
//以下開始是demo展示
$stack = new stack();
for ($j=0;$j<10; $j++){
$stack ->push($j);
}
while( $node=$stack ->pop() ){
echo $node->value, "\n";
}
php-堆棧
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.