PHP Doku:: The SplPriorityQueue class - class.splpriorityqueue.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige GrunderweiterungenStandard PHP Library (SPL)DatenstrukturenThe SplPriorityQueue class

Ein Service von Reinhard Neidl - Webprogrammierung.

Datenstrukturen

<<SplMinHeap::compare

SplPriorityQueue::compare>>


UnterSeiten:

The SplPriorityQueue class

Einführung

The SplPriorityQueue class provides the main functionalities of an prioritized queue, implemented using a heap.

Klassenbeschreibung

SplPriorityQueue implements Iterator , Countable {
/* Methoden */
__construct ( void )
int compare ( mixed $priority1 , mixed $priority2 )
int count ( void )
mixed current ( void )
mixed extract ( void )
void insert ( mixed $value , mixed $priority )
bool isEmpty ( void )
mixed key ( void )
void next ( void )
void recoverFromCorruption ( void )
void rewind ( void )
void setExtractFlags ( int $flags )
mixed top ( void )
bool valid ( void )
}

Inhaltsverzeichnis


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
rajatn at rediff dot co dot in
30.07.2010 13: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 )



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)