Heap::Elem - Perl extension for elements to be put in Heaps |
Heap::Elem - Perl extension for elements to be put in Heaps
use Heap::Elem::SomeInheritor;
use Heap::SomeHeapClass;
$elem = Heap::Elem::SomeInheritor->new( $value ); $heap = Heap::SomeHeapClass->new;
$heap->add($elem);
This is an inheritable class for Heap Elements. It provides the interface documentation and some inheritable methods. Only a child classes can be used - this class is not complete.
The Heap processing routines use this method to map an element into its internal structure. This is needed to support the Heap methods that affect elements that are not are the top of the heap - decrease_key and delete.
cmp($elem2)
This class can be inherited to provide an oject with the ability to be heaped. If the object is implemented as a hash, and if it can deal with a kay of heap, leaving it unchanged for use by the heap routines, then the following implemetation will work.
package myObject;
require Exporter;
@ISA = qw(Heap::Elem);
sub new { my $self = shift; my $class = ref($self) || $self;
my $self = SUPER::new($class);
# set $self->{key} = $value; }
sub cmp { my $self = shift; my $other = shift;
$self->{key} cmp $other->{key}; }
# other methods for the rest of myObject's functionality
John Macdonald, jmm@elegant.com
Heap(3), Heap::Elem::Num(3), Heap::Elem::NumRev(3), Heap::Elem::Str(3), Heap::Elem::StrRev(3).
Heap::Elem - Perl extension for elements to be put in Heaps |