oop — создание приоритетного класса очереди в переполнении стека

Я пытаюсь создать приоритетный класс очереди с объектом массива в PHP. Я знаю, что в PHP есть SplPriorityQueue, но я пытаюсь попрактиковаться в объектно-ориентированном программировании. Очереди приоритетов имеют данные и уровень приоритета, поэтому у меня есть грубый класс MyQueue, который реализует эти атрибуты. Я не уверен, что я иду в правильном направлении здесь. Я не работал с arrayObject в PHP раньше.

public class MyQueue{
private string data;
private int priority;

myQueue = arrayObject(array(data => priority));

}

0

Решение

Класс приоритетной очереди может выглядеть так:

class MyQueue implements Iterator, Countable {
private $data;

public function __construct() {
$this->data = array();
}

function compare($priority1, $priority2) {}

function count() {
return count($this->data);
}

function extract() {
$result = $this->current();
$this->next();
return $result;
}

function current() {
return current($this->data). ' - ' .$this->key();
}

function key() {
return key($this->data);
}

function next() {
return next($this->data);
}

function insert($name, $priority) {
$this->data[$name] = $priority;
asort($this->data);
return $this;
}

function isEmpty() {
return empty($this->data);
}

function recoverFromCorruption() {}

function rewind() {}

function valid() {
return (null === key($this->data)) ? false : true;
}
}

Использование:

$items = new MyQueue();

$items ->insert('Charles', 8)
->insert('James', 1)
->insert('Michael', 4)
->insert('John', 2)
->insert('David', 6)
->insert('William', 5)
->insert('Robert', 3)
->insert('Richard', 7);

foreach($items as $item) {
echo $item,'<br>';
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]