<?php /* * use PHP to write queue * 队列的顺序结构(循环队列,防止假溢出) */ class queue{ //存储空间 private $data; //队头"指针" private $front; //队尾"指针" private $rear; //定义最大容量 const MAX=10; //定义数量 private static $count; //初始化循序队列 public function __construct() { $this->data=array(); $this->front=self::MAX; $this->rear=self::MAX; self::$count=0; } /* * 入队列 * insert 为需要插入的元素 */ public function inQueue($insert) { if (self::$count==self::MAX){ echo "队列已满"; }else{ // $this->rear=($this->rear+1)%self::MAX; //将插入元素放入data中 $this->data[$this->rear]=$insert; //计数器加一 self::$count++; } } //出队列 public function outQueue() { //判断队列是否为空 if (self::$count==0){ echo "队列为空,无法出队列"; }else{ //读出队列头元素 $this->front=($this->front+1)%self::MAX; echo $this->data[$this->front]; unset($this->data[$this->front]); //计数器减一 self::$count--; } } //判断队列是否为空队列 public function emptyQueue() { if (self::$count==0) echo "队列为空队列"; } //显示队列元素 public function showQueue() { var_dump($this->data); } } /*$obj=new queue(); $obj->inQueue(1); $obj->inQueue(2); $obj->showQueue(); $obj->outQueue(); $obj->showQueue();*/
PHP与数据结构之循环队列
最新推荐文章于 2022-06-24 17:19:30 发布