summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Graph/Implicit.pm10
1 files changed, 10 insertions, 0 deletions
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 {