From b0cf5205e0abbf2c6fd4014755d9e304bf7bd34a Mon Sep 17 00:00:00 2001 From: doy Date: Sun, 14 Dec 2008 18:20:29 -0500 Subject: implement vertices and edges --- lib/Graph/Implicit.pm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/Graph/Implicit.pm b/lib/Graph/Implicit.pm index df3a434..03b9ebb 100644 --- a/lib/Graph/Implicit.pm +++ b/lib/Graph/Implicit.pm @@ -22,9 +22,19 @@ sub new { # generic information sub vertices { + my $self = shift; + my ($start) = @_; + my @vertices; + $self->dfs($start, sub { push @vertices, $_[1] }); + return @vertices; } +# XXX: probably pretty inefficient... can we do better? sub edges { + my $self = shift; + my ($start) = @_; + map { my $v = $_; map { [$v, $_] } $self->neighbors($v) } + $self->vertices($start); } sub neighbors { -- cgit v1.2.3