note 99146 modified in class.splpriorityqueue by salathe
| From: | salathe@php.net | Date: | Fri, 30 Jul 2010 11:46:50 +0000 |
| Subject: | note 99146 modified in class.splpriorityqueue by salathe | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-171222@lists.php.net to get a copy of this message | ||
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 )
--was--
quick implementation of SPL Priority Queue:
<?php
error_reporting(E_ALL);
class PQtest extends SplPriorityQueue{
public function compare($priority1, $priority2)
{
if ($priority1 === $priority2) return 0;
return $priority1 < $priority2 ? -1 : 1;
}
}
$objPQ = new SplPriorityQueue();
$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(0x00000003);
//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 )
http://php.net/manual/en/class.splpriorityqueue.php