php-堆棧

//用數組來實現堆棧

/*$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";
}
	

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章