修炼内功---数据结构与算法5---栈
/** * 通过 PHP 数组实现简单的顺序栈 */ class SimpleStack { private $_stack = []; private $_size = 0; public function __construct($size = 10) { $this->_size = $size; } // 获取栈顶元素 public function pop() { // 空栈 if (count($this->_stack) == 0) { return false; } //array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一 //Note: 使用此函数后会重置(reset())array 指针。 //如果 array 是空(如果不是一个数组),将会返回 NULL return array_pop($this->_stack); } // 推送元素到栈顶 public function push($value) { // 满栈 if (count($this->_stack) == $this->_size) { return false; } //array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。 //Note: 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。 //返回处理之后数组的元素个数 array_push($this->_stack,$value); return true; } public function isEmpty() { // 是否是空栈 //这个写法很优雅 return current($this->_stack) == false; } public function size() { return count($this->_size); } } $stack = new SimpleStack(15); var_dump($stack->isEmpty()); # true $stack->push(111); $stack->push('学院君'); var_dump($stack->pop()); # 学院君 var_dump($stack->size()); # 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |