package Heap
::Elem
::StrRev
;
use vars
qw($VERSION @ISA @EXPORT @EXPORT_OK);
@ISA = qw(Exporter AutoLoader);
# Available for export: StrRElem (to allocate a new Heap::Elem::StrRev value)
@EXPORT_OK = qw( StrRElem );
# Preloaded methods go here.
$class = ref($class) || $class;
# two slot array, 0 for the string value, 1 for use by Heap
my $self = [ shift, undef ];
return bless $self, $class;
sub StrRElem
{ # exportable synonym for new
Heap
::Elem
::StrRev
->new(@_);
@_ ?
($self->[0] = shift) : $self->[0];
@_ ?
($self->[1] = shift) : $self->[1];
# compare two StrR elems (reverse order)
return $other->[0] cmp $self->[0];
# Autoload methods go after =cut, and are processed by the autosplit program.
# Below is the stub of documentation for your module. You better edit it!
Heap::Elem::StrRev - Perl extension for Reversed String Heap Elements
use Heap::Elem::StrRev( StrRElem );
my $heap = Heap::Fibonacci->new;
foreach $i ( 'aa'..'bz' ) {
while( defined( $elem = $heap->extract_top ) ) {
print "Largest is ", $elem->val, "\n";
Heap::Elem::StrRev is used to wrap string values into an element
that can be managed on a heap. The top of the heap will have
the largest element still remaining. (See L<Heap::Elem::Str>
if you want the heap to always return the smallest element.)
The details of the Elem interface are described in L<Heap::Elem>.
The details of using a Heap interface are described in L<Heap>.
John Macdonald, jmm@perlwolf.com
Copyright 1998-2003, O'Reilly & Associates.
This code is distributed under the same copyright terms as perl itself.
Heap(3), Heap::Elem(3), Heap::Elem::Str(3).