php行列,【后端开辟】php 怎样完成行列
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
總結
以上是生活随笔為你收集整理的php行列,【后端开辟】php 怎样完成行列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大班幼儿体育教案《小小邮递员送信》反思
- 下一篇: 普通红砖的尺寸