php行列,【后端开辟】php 怎样完成行列

6b97489925cc87b5039e3267d85d38c0.png

php怎样完成行列?

此行列算法中有两个类:

第一个是data类,这个类是寄存数据;

第二个是queue类,也就是行列类这个就是行列的一些操纵;

起首行列里包括四个属性:

front(行列的头,也就是出队是要出去的)

rear(行列的尾部在这里永久指向0)

queue(寄存一切入队的data对像,queue中默许存在一个元素当空时front和rear都指向他)

maxsize(行列的长度)

运用申明:

1初始化行列:生成一个行列传入一个参数作为maxsize初始化行列把rear设为0 ,front设为0此时queue中只要0号元素rear和front都指向他

2.入队:推断行列是不是已满(front-rear==maxsize),假如满提醒,若果没满先让front+1,然后让一切行列中的元素像前挪动一名(也就是给新来的让出队尾位置),然后生成data对象插进去到队尾+1的位置。此时入队胜利!

3.出队:推断行列是不是为空(front==rear),如空提醒,如不为空,删除front指向的对象,front-1(向后挪动一名),出队胜利!

/**

* php行列算法

*

* Create On 2010-6-4

* Author Been

* QQ:281443751

* Email:binbin1129@126.com

**/

class data {

//数据

private $data;

public function __construct($data){

$this->data=$data;

echo $data.":哥进队了!
";

}

public function getData(){

return $this->data;

}

public function __destruct(){

echo $this->data.":哥走了!
";

}

}

class queue{

protected $front;//队头

protected $rear;//队尾

protected $queue=array('0'=>'队尾');//存储行列

protected $maxsize;//最大数

public function __construct($size){

$this->initQ($size);

}

//初始化行列

private function initQ($size){

$this->front=0;

$this->rear=0;

$this->maxsize=$size;

}

//推断队空

public function QIsEmpty(){

return $this->front==$this->rear;

}

//推断队满

public function QIsFull(){

return ($this->front-$this->rear)==$this->maxsize;

}

//猎取队首数据

public function getFrontDate(){

return $this->queue[$this->front]->getData();

}

//入队

public function InQ($data){

if($this->QIsFull())echo $data.":我一来咋就满了!(队满不能入队,请守候!)
";

else {

$this->front++;

for($i=$this->front;$i>$this->rear;$i--){

//echo $data;

if($this->queue[$i])unset($this->queue[$i]);

$this->queue[$i]=$this->queue[$i-1];

}

$this->queue[$this->rear+1]=new data($data);

//print_r($this->queue);

//echo $this->front;

echo '入队胜利!
';

}

}

//出队

public function OutQ(){

if($this->QIsEmpty())echo "队空不能出队!
";

else{

unset($this->queue[$this->front]);

$this->front--;

//print_r($this->queue);

//echo $this->front;

echo "出队胜利!
";

}

}

}

$q=new queue(3);

$q->InQ("小苗");

$q->InQ('马帅');

$q->InQ('滑冰');

$q->InQ('张世佳');

$q->OutQ();

$q->InQ("周瑞晓");

$q->OutQ();

$q->OutQ();

$q->OutQ();

$q->OutQ();

运转效果:

小苗:哥进队了!

入队胜利

马帅:哥进队了!

入队胜利

滑冰:哥进队了!

入队胜利

张世佳:我一来咋就满了!(队满不能入队,请守候!)

小苗:哥走了!

出队胜利!

周瑞晓:哥进队了!

入队胜利

马帅:哥走了!

出队胜利!

滑冰:哥走了!

出队胜利!

周瑞晓:哥走了!

出队胜利!

队空不能出队!

队空不能出队!

以上就是php 怎样完成行列的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值