队列是一种线性动态数据结构,遵循先进先出(FIFO)原则。在队列中,添加新元素和删除元素发生在不同的一端,这意味着首先添加到队列中的元素将最先从队列中删除。
队列特点
- 它是一个动态数据结构。
- 它具有动态大小。
- 它使用动态内存分配。
队列的操作
- isEmpty():检查队列是否为空。
- size( ): 返回队列的大小。
- frontElement(): 返回队列的前端元素。它是下一个要出队的元素。
- rearElement():返回队列的后部元素。它是下一个元素将被排入队列的元素。
- EnQueue(x):从队列的后侧添加一个新元素"x"。因此,队列的大小增加 1。
- DeQueue():删除队列的前端元素。因此,队列的大小减少 1。
队列的实现
<?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 从队列中删除。
队列不为空.