php实现数据结构之“栈”

“栈”这种数据结构是最普通的一种数据结构,他的特点就是:限制插入和删除都只能发生在一个位置上进行的线性表,该位置是线性表的末端,叫做栈的顶。

下面我把自己的实现代码放上来,代码很短,关键的地方都加了注释,这样,大家都看得懂。

<?php
//

/**
* 数据结构之“栈”实现 by jroam http://www.10np.com
*/

class zhan{
private $_data=array();//定义栈存放的数据
private $_end=null;//最后一个元素 的索引 因为初始时是没有值的,所以为null

/**
* 放进来一个数据,如果还没有值的话,就把第一个值的索引值设为0
* 如果是后面放一个进来,那么索引值就自动加1
*/
public function push($data){
if(empty($this->_data)){
$this->_end=0;
}
else{
$this->_end++;
}

$this->_data[$this->_end]=$data;
}

/**
* 从最后面取出一个元素
* */
function pop(){
if(empty($this->_data)) return false;
$gertd= $this->_data[$this->_end];
array_splice($this->_data,$this->_end);//删除这个已经拿走了的数据。
$this->_end--;//索引自动减小为1
return $gertd;
}

/**
* 返回所有的元素
*/
function getAlldata(){
return $this->_data;
}

}


$mm=new zhan();
$mm->push("张三");
$mm->push("李四");

echo "".$mm->pop()."<br>";
?>