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