SPTHeapElem.pm   [plain text]


package Graph::SPTHeapElem;

use strict;
use vars qw($VERSION @ISA);
use Heap::Elem;

use base 'Heap::Elem';

$VERSION = 0.01;

sub new {
    my $class = shift;
    bless { u => $_[0], v => $_[1], w => $_[2] }, $class;
}

sub cmp {
    ($_[0]->{ w } || 0) <=> ($_[1]->{ w } || 0) ||
    ($_[0]->{ u } cmp $_[1]->{ u }) ||
    ($_[0]->{ u } cmp $_[1]->{ v });
}

sub val {
    @{ $_[0] }{ qw(u v w) };
}

1;