php 顺序结构,数据结构之队列——顺序存储结构(php代码实现——方法一)

/**

* 第一种——非循环顺序队列的实现方法

* 队列的头元素在为数组的下标为0的元素

* 这种方法的优缺点:

*  优点:头元素始终在下标为 0 的第一个元素,因此不需要设置头指针

*  缺点:元素出队是会移动大量元素,时间复杂度为O(n),效率比较低

*

*/

class SqQueue{

private $SqArr;//队列存储数组

private $rear;//若队列不为空,则指向队尾元素的后一个位置

public function __construct(){

$this->SqArr=array();

$this->rear=0;

}

//销毁链栈

public function DestroyQueue(){

$this->SqArr=null;

$this->rear=0;

}

//清空队列

public function ClearQueue(){

$this->SqArr=array();

$this->rear=0;

}

//队列是否为空

public function QueueEmpty(){

if($this->rear==0){

return 'Null';

}else{

return 'No Null';

}

}

//队列的长度

public function QueueLength(){

return $this->rear;

}

//取得队头元素

public function GetHead(){

return $this->SqArr[0];

}

//从队尾插入元素

public function EnQueue($elem){

$this->SqArr[$this->rear++]=$elem;

}

//从队头删除元素

public function DeQueue(){

if($this->rear == 0){

return 'ERROR';

}

for($i=1;$irear;$i++){

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

}

unset($this->SqArr[$this->rear-1]);//移动完成后,最后一个元素也就最后一个元素也就不存在了,所以释放掉。

$this->rear--;

return 'OK';

}

//遍历队列元素

public function QueueTraverse(){

$arr=array();

for($i=0;$irear;$i++){

$arr[]=$this->SqArr[$i];

}

return $arr;

return $this->SqArr;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值