1. 程式人生 > >PHP與資料結構之迴圈佇列

PHP與資料結構之迴圈佇列

<?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();*/