php行列,【后端开辟】php 怎样完成行列
php怎樣完成行列?
此行列算法中有兩個類:
第一個是data類,這個類是寄存數(shù)據(jù);
第二個是queue類,也就是行列類這個就是行列的一些操縱;
起首行列里包括四個屬性:
front(行列的頭,也就是出隊(duì)是要出去的)
rear(行列的尾部在這里永久指向0)
queue(寄存一切入隊(duì)的data對像,queue中默許存在一個元素當(dāng)空時front和rear都指向他)
maxsize(行列的長度)
運(yùn)用申明:
1初始化行列:生成一個行列傳入一個參數(shù)作為maxsize初始化行列把rear設(shè)為0 ,front設(shè)為0此時queue中只要0號元素rear和front都指向他
2.入隊(duì):推斷行列是不是已滿(front-rear==maxsize),假如滿提醒,若果沒滿先讓front+1,然后讓一切行列中的元素像前挪動一名(也就是給新來的讓出隊(duì)尾位置),然后生成data對象插進(jìn)去到隊(duì)尾+1的位置。此時入隊(duì)勝利!
3.出隊(duì):推斷行列是不是為空(front==rear),如空提醒,如不為空,刪除front指向的對象,front-1(向后挪動一名),出隊(duì)勝利!
/**
* php行列算法
*
* Create On 2010-6-4
* Author Been
* QQ:281443751
* Email:binbin1129@126.com
**/
class data {
//數(shù)據(jù)
private $data;
public function __construct($data){
$this->data=$data;
echo $data.":哥進(jìn)隊(duì)了!
";
}
public function getData(){
return $this->data;
}
public function __destruct(){
echo $this->data.":哥走了!
";
}
}
class queue{
protected $front;//隊(duì)頭
protected $rear;//隊(duì)尾
protected $queue=array('0'=>'隊(duì)尾');//存儲行列
protected $maxsize;//最大數(shù)
public function __construct($size){
$this->initQ($size);
}
//初始化行列
private function initQ($size){
$this->front=0;
$this->rear=0;
$this->maxsize=$size;
}
//推斷隊(duì)空
public function QIsEmpty(){
return $this->front==$this->rear;
}
//推斷隊(duì)滿
public function QIsFull(){
return ($this->front-$this->rear)==$this->maxsize;
}
//獵取隊(duì)首數(shù)據(jù)
public function getFrontDate(){
return $this->queue[$this->front]->getData();
}
//入隊(duì)
public function InQ($data){
if($this->QIsFull())echo $data.":我一來咋就滿了!(隊(duì)滿不能入隊(duì),請守候!)
";
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 '入隊(duì)勝利!
';
}
}
//出隊(duì)
public function OutQ(){
if($this->QIsEmpty())echo "隊(duì)空不能出隊(duì)!
";
else{
unset($this->queue[$this->front]);
$this->front--;
//print_r($this->queue);
//echo $this->front;
echo "出隊(duì)勝利!
";
}
}
}
$q=new queue(3);
$q->InQ("小苗");
$q->InQ('馬帥');
$q->InQ('滑冰');
$q->InQ('張世佳');
$q->OutQ();
$q->InQ("周瑞曉");
$q->OutQ();
$q->OutQ();
$q->OutQ();
$q->OutQ();
運(yùn)轉(zhuǎn)效果:
小苗:哥進(jìn)隊(duì)了!
入隊(duì)勝利
馬帥:哥進(jìn)隊(duì)了!
入隊(duì)勝利
滑冰:哥進(jìn)隊(duì)了!
入隊(duì)勝利
張世佳:我一來咋就滿了!(隊(duì)滿不能入隊(duì),請守候!)
小苗:哥走了!
出隊(duì)勝利!
周瑞曉:哥進(jìn)隊(duì)了!
入隊(duì)勝利
馬帥:哥走了!
出隊(duì)勝利!
滑冰:哥走了!
出隊(duì)勝利!
周瑞曉:哥走了!
出隊(duì)勝利!
隊(duì)空不能出隊(duì)!
隊(duì)空不能出隊(duì)!
以上就是php 怎樣完成行列的細(xì)致內(nèi)容,更多請關(guān)注ki4網(wǎng)別的相干文章!
收藏 | 0
總結(jié)
以上是生活随笔為你收集整理的php行列,【后端开辟】php 怎样完成行列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大班幼儿体育教案《小小邮递员送信》反思
- 下一篇: beego使用php,介绍beego、n