<?php
class Node {
// always initialize properties
public mixed $data = null;
public ?Node $next = null;
public function __construct(mixed $data) {
$this->data = $data;
}
}
class Queue {
// always initialize properties
public ?Node $head = null;
public ?Node $tail = null;
public int $size = 0;
public function enqueue(mixed $data) : void {
$node = new Node($data);
if ($this->size === 0) {
$this->head = $node;
} else {
$this->tail->next = $node;
}
$this->tail = $node;
$this->size++;
}
public function dequeue() : mixed {
if ($this->size === 0) {
return 'Queue empty';
}
$data = $this->head->data;
$this->head = $this->head->next;
$this->size--;
if ($this->size === 0) {
$this->tail = null;
}
return $data;
}
}
$ll = new Queue();
echo 'dequeue(): ' . $ll->dequeue() . PHP_EOL;
for ($i = 1; $i < 4; $i++) { $ll->enqueue($i); }
var_dump($ll);
echo 'dequeue(): ' . $ll->dequeue() . PHP_EOL;
echo 'dequeue(): ' . $ll->dequeue() . PHP_EOL;
echo 'dequeue(): ' . $ll->dequeue() . PHP_EOL;
echo 'dequeue(): ' . $ll->dequeue() . PHP_EOL;
var_dump($ll);
To embed this project on your website, copy the following code and paste it into your website's HTML: