This documentation does not mention whether this is a min-heap or a max-heap.
La classe SplPriorityQueue
(PHP 5 >= 5.3.0)
Introduction
La classe SplPriorityQueue fournit les fonctionnalités d'une queue à priorités, implémentées avec une pile.
Synopsis de la classe
/* Méthodes */
__construct
( void
)
}Sommaire
- SplPriorityQueue::compare — Compare deux priorités
- SplPriorityQueue::__construct — Construit une nouvelle file d'attente vide
- SplPriorityQueue::count — Compte le nombre d'éléments dans la file d'attente
- SplPriorityQueue::current — Retourne le noeud courant, pointé par l'itérateur
- SplPriorityQueue::extract — Extrait un noeud depuis le haut du tas
- SplPriorityQueue::insert — Insère un élément dans la file d'attente
- SplPriorityQueue::isEmpty — Vérifie si la file est vide
- SplPriorityQueue::key — Retourne l'index du noeud courant
- SplPriorityQueue::next — Se déplace sur le prochain noeud
- SplPriorityQueue::recoverFromCorruption — Répare une file d'attente
- SplPriorityQueue::rewind — Revient au début de l'itérateur
- SplPriorityQueue::setExtractFlags — Définit le mode d'extraction
- SplPriorityQueue::top — Récupère le noeud du haut de la file d'attente
- SplPriorityQueue::valid — Vérifie si la file d'attente contient encore des noeuds
Anonymous
13-Jan-2011 07:12
rajatn at rediff dot co dot in
30-Jul-2010 04:29
quick implementation of SPL Priority Queue:
<?php
class PQtest extends SplPriorityQueue
{
public function compare($priority1, $priority2)
{
if ($priority1 === $priority2) return 0;
return $priority1 < $priority2 ? -1 : 1;
}
}
$objPQ = new PQtest();
$objPQ->insert('A',3);
$objPQ->insert('B',6);
$objPQ->insert('C',1);
$objPQ->insert('D',2);
echo "COUNT->".$objPQ->count()."<BR>";
//mode of extraction
$objPQ->setExtractFlags(PQtest::EXTR_BOTH);
//Go to TOP
$objPQ->top();
while($objPQ->valid()){
print_r($objPQ->current());
echo "<BR>";
$objPQ->next();
}
?>
output:
COUNT->4
Array ( [data] => B [priority] => 6 )
Array ( [data] => A [priority] => 3 )
Array ( [data] => D [priority] => 2 )
Array ( [data] => C [priority] => 1 )
