I am not sure if this is a bug or not, but something is strange with this:
I run this little test script, this one is posted on php.net in comments
section
class MySimpleHeap extends SplMaxHeap
{
public function compare( $value1, $value2 ) {
return ( $value1 - $value2 );
}
}
$obj = new MySimpleHeap();
$obj->insert( 4 );
$obj->insert( 8 );
$obj->insert( 1 );
$obj->insert( 0 );
foreach( $obj as $number ) {
echo $number."\n";
}
The output is 8 4 1 0
Good.
Now I change the
class MySimpleHeap extends SplMaxHeap
to
class MySimpleHeap extends SplMinHeap
run it again (now I expet to get lowest value first) and get exact same
results back.
Is this a bug?
Dmitri Snytkine
Web Developer
Ultra Logistics, Inc.
Phone: (888) 220-4640 x 2097
Fax: (888) 795-6642
E-Mail: dsnytkine@ultralogistics.com
Web: www.ultralogistics.com
"A Top 100 Logistics I.T. Provider in 2011"
Hi,
On Sat, Feb 25, 2012 at 14:21, Dmitri Snytkine
dsnytkine@ultralogistics.com wrote:
I am not sure if this is a bug or not, but something is strange with this:
I run this little test script, this one is posted on php.net in comments
sectionclass MySimpleHeap extends SplMaxHeap
{
public function compare( $value1, $value2 ) {
return ( $value1 - $value2 );
}
}$obj = new MySimpleHeap();
$obj->insert( 4 );
$obj->insert( 8 );
$obj->insert( 1 );
$obj->insert( 0 );foreach( $obj as $number ) {
echo $number."\n";
}The output is 8 4 1 0
Good.
Now I change the
class MySimpleHeap extends SplMaxHeap
to
class MySimpleHeap extends SplMinHeaprun it again (now I expet to get lowest value first) and get exact same
results back.Is this a bug?
No, this is not a bug. SplMin/MaxHeap simply define their own compare
method, but you overwrite it anyway.
If you specify the compare method, I don't believe it is useful to
extends SplMin/MaxHeap if you overwrite the compare method completely,
you should extend SplHeap directly in such cases.
Best,
Dmitri Snytkine
Web Developer
Ultra Logistics, Inc.
Phone: (888) 220-4640 x 2097
Fax: (888) 795-6642
E-Mail: dsnytkine@ultralogistics.com
Web: www.ultralogistics.com"A Top 100 Logistics I.T. Provider in 2011"
--
--
Etienne Kneuss
http://www.colder.ch