PHP 常用例子

队列是一种线性动态数据结构,遵循先进先出(FIFO)原则。在队列中,添加新元素和删除元素发生在不同的一端,这意味着首先添加到队列中的元素将最先从队列中删除。

队列特点

  • 它是一个动态数据结构。
  • 它具有动态大小。
  • 它使用动态内存分配。

队列的操作

  • isEmpty():检查队列是否为空。
  • size( ): 返回队列的大小。
  • frontElement(): 返回队列的前端元素。它是下一个要出队的元素。
  • rearElement():返回队列的后部元素。它是下一个元素将被排入队列的元素。
  • EnQueue(x):从队列的后侧添加一个新元素"x"。因此,队列的大小增加 1。
    PHP 中的队列queue
  • DeQueue():删除队列的前端元素。因此,队列的大小减少 1。
    PHP 中的队列queue

队列的实现

<?php

class CreateQueue {
  public $front;
  public $rear;

  public $queue = array();

  function __construct() {
    $this->rear = -1;
    $this->front = -1;
  }

  // 创建一个函数来检查是否
  //队列是否为空
  public function isEmpty() {
    if($this->rear == $this->front) {
      echo "Queue is empty. \n";
    } else {
      echo "队列不为空. \n";
    }
  }

  //创建一个函数来返回队列的大小
  public function size() {
     return ($this->rear - $this->front);
  }

  //创建一个函数来添加新元素
  public function EnQueue($x) {
    $this->queue[++$this->rear] = $x;
    echo $x." 被添加到队列中。 \n";
  }

  //创建删除前面元素的函数
  public function DeQueue() {
    if($this->rear == $this->front){
      echo "Queue is empty. \n";
    } else {
      $x = $this->queue[++$this->front];
      echo $x." 从队列中删除。 \n";
    }
  }

  //创建一个函数来获取前面的元素
  public function frontElement() {
    if($this->rear == $this->front) {
      echo "Queue is empty. \n";
    } else {
      return $this->queue[$this->front+1];
    }
  }

  //创建一个函数来获取后面的元素
  public function rearElement() {
    if($this->rear == $this->front) {
      echo "Queue is empty. \n";
    } else {
      return $this->queue[$this->rear];
    }
  }
}

//测试代码
$MyQueue = new CreateQueue();
$MyQueue->EnQueue(10);
$MyQueue->EnQueue(20);
$MyQueue->EnQueue(30);
$MyQueue->EnQueue(40);

$MyQueue->DeQueue();
$MyQueue->isEmpty();
?> 

上面的代码将给出以下输出:

10 被添加到队列中。
20 被添加到队列中。
30 被添加到队列中。
40 被添加到队列中。
10 从队列中删除。
队列不为空.