Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tree::Binary::Visitor:UseraContributediPerl:Docsitor::BreadthFirstTraversal(3)

NAME
       Tree::Binary::Visitor::BreadthFirstTraversal - Visitor object for
       Tree::Binary objects

SYNOPSIS
       For a complete example, see also	"SYNOPSIS" in Tree::Binary.

	 use Tree::Binary;
	 use Tree::Binary::Visitor::BreadthFirstTraversal;

	 # create a visitor instance
	 my $visitor = Tree::Binary::Visitor::BreadthFirstTraversal->new();

	 # create a tree to visit
	 # this	is an expression tree
	 # representing	((2 + 2) * (4 +	5))
	 my $btree = Tree::Binary->new("*")
			   ->setLeft(Tree::Binary->new("+")
				       ->setLeft(Tree::Binary->new("2"))
				       ->setRight(Tree::Binary->new("2")))
			   ->setRight(Tree::Binary->new("+")
				       ->setLeft(Tree::Binary->new("4"))
				       ->setRight(Tree::Binary->new("5")));

	 # by default this will	collect	all the
	 # node	values in depth-first order into
	 # our results
	 $tree->accept($visitor);

	 # get our results and print them
	 print join ", ", $visitor->getResults();  # prints "*,	+, +, 2, 2, 4, 5"

	 # for more complex node objects, you can specify
	 # a node filter which will be used to extract the
	 # information desired from each node
	 $visitor->setNodeFilter(sub {
		       my ($t) = @_;
		       return $t->getNodeValue()->description();
		       });

DESCRIPTION
       This implements a breadth-first traversal of a Tree::Binary object.
       This can	be an alternative to the built in depth-first traversal	of the
       Tree::Binary traverse method.

METHODS
       new There are no	arguments to the constructor the object	will be	in its
	   default state. You can use the "setNodeFilter" method to customize
	   its behavior.

       getNodeFilter
	   This	method returns the CODE	reference set with "setNodeFilter"
	   argument.

       clearNodeFilter
	   This	method clears node filter field.

       setNodeFilter ($filter_function)
	   This	method accepts a CODE reference	as its $filter_function
	   argument. This code reference is used to filter the tree nodes as
	   they	are collected. This can	be used	to customize output, or	to
	   gather specific information from a more complex tree	node. The
	   filter function should accept a single argument, which is the
	   current Tree::Binary	object.

       getResults
	   This	method returns the accumulated results of the application of
	   the node filter to the tree.

       setResults
	   This	method should not really be used outside of this class,	as it
	   just	would not make any sense to. It	is included in this class and
	   in this documenation	to facilitate subclassing of this class	for
	   your	own needs. If you desire to clear the results, then you	can
	   simply call "setResults" with no argument.

       visit ($tree)
	   The "visit" method accepts a	Tree::Binary and applies the function
	   set in "new"	or "setNodeFilter" appropriately. The results of this
	   application can be retrieved	with "getResults"

BUGS
       None that I am aware of.	Of course, if you find a bug, let me know, and
       I will be sure to fix it.

CODE COVERAGE
       See the CODE COVERAGE section of	Tree::Binary for details.

Repository
       <https://github.com/ronsavage/Tree-Binary>

AUTHOR
       stevan little, <stevan@iinteractive.com>

COPYRIGHT AND LICENSE
       Copyright 2004, 2005 by Infinity	Interactive, Inc.

       <http://www.iinteractive.com>

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.24.1		       Tree::Binary::Visitor::BreadthFirstTraversal(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | BUGS | CODE COVERAGE | Repository | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Tree::Binary::Visitor::BreadthFirstTraversal&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help