您的位置:首页 > 理论基础 > 数据结构算法

PHP与数据结构之栈的顺序存储

2017-04-14 22:54 106 查看
<?php
/*
* use php  write stack
* 栈的顺序存储结构
* Stack类为栈类
*/

class  Stack{
//$next 指向栈顶
private $top;
//$length 记录栈的长度
private static $length;
//$data 存储位置
private $data;
//max 最大容量
const MAX=10;
//初始化栈
public function __construct()
{
$this->top=-1;
self::$length=0;
$this->data=array();

}
/*
* pushStack($insert)
* insert 插入的元素
* 入栈操作 判断栈是否已满
* if true 输出提示语
* else 进行入栈操作
*/
public function pushStack($insert)
{
if($this->top==self::MAX-1)
{
echo "栈已满";
//echo self::MAX;
}
else
{
//栈顶“指针”加1
$this->top++;
//给$data赋值
$this->data[$this->top]=$insert;
//长度加一
self::$length++;
echo "已入栈";
}
}
/*
* popStack()出栈及返回栈顶元素
*/
public function popStack()
{

if($this->top==-1)
{
echo "栈以空";
}else
{
$result=$this->data[$this->top];
$this->top--;
self::$length--;
//返回栈顶元素
echo "以出栈";
return $result;
}
}
//out()输出栈内元素
public function out()
{
for ($i=0;$i<=$this->top;$i++)
{
echo $this->data[$i];
}
}

}

/*
*
*  $data=new Stack();
*  $data->pushStack(1);
*  $data->pushStack(2);
*  $data->pushStack(3);
*  $data->out();
*  $data->popStack();
*  $data->popStack();
*  $data->out();
*
* 栈顺序存储的另外一种方式
*   array_push();
*   array_pop();
*
*
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP