PHP與資料結構之迴圈佇列
阿新 • • 發佈:2019-02-11
<?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 functionoutQueue() { //判斷佇列是否為空 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();*/