From b758557ca8b972ca8c559f5150bb2769219aa796 Mon Sep 17 00:00:00 2001 From: doy Date: Mon, 15 Dec 2008 03:32:23 -0500 Subject: implement prim in terms of _traversal --- lib/Graph/Implicit.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/Graph/Implicit.pm b/lib/Graph/Implicit.pm index 095de51..49935dd 100644 --- a/lib/Graph/Implicit.pm +++ b/lib/Graph/Implicit.pm @@ -67,8 +67,6 @@ sub is_bipartite { # traversal -# XXX: if we can generalize @bag to allow for a heap, then we can implement -# prim with this too sub _traversal { my $self = shift; my ($start, $code, $create, $notempty, $insert, $remove) = @_; @@ -117,6 +115,13 @@ sub boruvka { } sub prim { + my $self = shift; + my ($start, $code) = @_; + return $self->_traversal($start, $code, + sub { Heap::Simple->new(elements => 'Any') }, + sub { $_[0]->count }, + sub { $_[0]->key_insert($_[2], $_[1]) }, + sub { $_[0]->extract_top }); } sub kruskal { -- cgit v1.2.3