Graph::Traversal man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Graph::Traversal(3)   User Contributed Perl Documentation  Graph::Traversal(3)

NAME
       Graph::Traversal - traverse graphs

SYNOPSIS
       Don't use Graph::Traversal directly, use Graph::Traversal::DFS or
       Graph::Traversal::BFS instead.

	   use Graph;
	   my $g = Graph->new;
	   $g->add_edge(...);
	   use Graph::Traversal::...;
	   my $t = Graph::Traversal::...->new(%opt);
	   $t->...

DESCRIPTION
       You can control how the graph is traversed by the various callback
       parameters in the %opt.	In the parameters descriptions below the $u
       and $v are vertices, and the $self is the traversal object itself.

   Callback parameters
       The following callback parameters are available:

       tree_edge
	   Called when traversing an edge that belongs to the traversal tree.
	   Called with arguments ($u, $v, $self).

       non_tree_edge
	   Called when an edge is met which either leads back to the traversal
	   tree (either a "back_edge", a "down_edge", or a "cross_edge").
	   Called with arguments ($u, $v, $self).

       pre_edge
	   Called for edges in preorder.  Called with arguments ($u, $v,
	   $self).

       post_edge
	   Called for edges in postorder.  Called with arguments ($u, $v,
	   $self).

       back_edge
	   Called for back edges.  Called with arguments ($u, $v, $self).

       down_edge
	   Called for down edges.  Called with arguments ($u, $v, $self).

       cross_edge
	   Called for cross edges.  Called with arguments ($u, $v, $self).

       pre
       pre_vertex
	   Called for vertices in preorder.  Called with arguments ($v,
	   $self).

       post
       post_vertex
	   Called for vertices in postorder.  Called with arguments ($v,
	   $self).

       first_root
	   Called when choosing the first root (start) vertex for traversal.
	   Called with arguments ($self, $unseen) where $unseen is a hash
	   reference with the unseen vertices as keys.

       next_root
	   Called when choosing the next root (after the first one) vertex for
	   traversal (useful when the graph is not connected).	Called with
	   arguments ($self, $unseen) where $unseen is a hash reference with
	   the unseen vertices as keys.	 If you want only the first reachable
	   subgraph to be processed, set the next_root to "undef".

       start
	   Identical to defining "first_root" and undefining "next_root".

       next_alphabetic
	   Set this to true if you want the vertices to be processed in
	   alphabetic order (and leave first_root/next_root undefined).

       next_numeric
	   Set this to true if you want the vertices to be processed in
	   numeric order (and leave first_root/next_root undefined).

       next_successor
	   Called when choosing the next vertex to visit.  Called with
	   arguments ($self, $next) where $next is a hash reference with the
	   possible next vertices as keys.  Use this to provide a custom
	   ordering for choosing vertices, as opposed to "next_numeric" or
	   "next_alphabetic".

       The parameters "first_root" and "next_successor" have a 'hierarchy' of
       how they are determined: if they have been explicitly defined, use that
       value.  If not, use the value of "next_alphabetic", if that has been
       defined.	 If not, use the value of "next_numeric", if that has been
       defined.	 If not, the next vertex to be visited is chose randomly.

   Methods
       The following methods are available:

       unseen
	   Return the unseen vertices in random order.

       seen
	   Return the seen vertices in random order.

       seeing
	   Return the active fringe vertices in random order.

       preorder
	   Return the vertices in preorder traversal order.

       postorder
	   Return the vertices in postorder traversal order.

       vertex_by_preorder
	       $v = $t->vertex_by_preorder($i)

	   Return the ith (0..$V-1) vertex by preorder.

       preorder_by_vertex
	       $i = $t->preorder_by_vertex($v)

	   Return the preorder index (0..$V-1) by vertex.

       vertex_by_postorder
	       $v = $t->vertex_by_postorder($i)

	   Return the ith (0..$V-1) vertex by postorder.

       postorder_by_vertex
	       $i = $t->postorder_by_vertex($v)

	   Return the postorder index (0..$V-1) by vertex.

       preorder_vertices
	   Return a hash with the vertices as the keys and their preorder
	   indices as the values.

       postorder_vertices
	   Return a hash with the vertices as the keys and their postorder
	   indices as the values.

       tree
	   Return the traversal tree as a graph.

       has_state
	       $t->has_state('s')

	   Test whether the traversal has state 's' attached to it.

       get_state
	       $t->get_state('s')

	   Get the state 's' attached to the traversal ("undef" if none).

       set_state
	       $t->set_state('s', $s)

	   Set the state 's' attached to the traversal.

       delete_state
	       $t->delete_state('s')

	   Delete the state 's' from the traversal.

   Backward compatibility
       The following parameters are for backward compatibility to Graph 0.2xx:

       get_next_root
	   Like "next_root".

       successor
	   Identical to having "tree_edge" both "non_tree_edge" defined to be
	   the same.

       unseen_successor
	   Like "tree_edge".

       seen_successor
	   Like "seed_edge".

   Special callbacks
       If in a callback you call the special "terminate" method, the traversal
       is terminated, no more vertices are traversed.

SEE ALSO
       Graph::Traversal::DFS, Graph::Traversal::BFS

AUTHOR AND COPYRIGHT
       Jarkko Hietaniemi jhi@iki.fi

LICENSE
       This module is licensed under the same terms as Perl itself.

perl v5.14.0			  2008-11-28		   Graph::Traversal(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net