NAME
Tree::Binary::XS - Perl extension for manipulating binary tree structure
SYNOPSIS
use Tree::Binary::XS;
my $tree = Tree::Binary::XS->new({ by_key => 'id' });
$tree->insert({ foo => 'bar', id => 11 });
$tree->insert([{ foo => 'bar', id => 11 }, ... ]);
$ret->exists(10);
$ret->exists({ id => 10, 'name' => 'Bob' });
# Use specified key instead of the key from payload
$tree->insert(10, { foo => 'bar' });
# to insert multiple keys one time.
@ret = $tree->insert_those([{ id => 10, 'name' => 'Bob' },  { id => 3, 'name' => 'John' }, { id => 2, 'name' => 'Hank' } ]);
$tree->update(10, { foo => 'bar' })
$n = $tree->search(10);
$tree->exists(10);
$tree->exists({ foo => 'bar' , id => 10 });
$tree->inorder_traverse(sub { 
      my ($key, $node) = @_;
  });
$tree->postorder_traverse(sub { 
      my ($key, $node) = @_;
  });
$tree->preorder_traverse(sub { 
      my ($key, $node) = @_;
  });
DESCRIPTION
Please note this extension is not compatible with the Tree::Binary package, this module was redesigned and simplified the interface of manipulating tree structure.
FUNCTIONS
- $tree = Tree::Binary::XS->new({ by_key => $field_name })
 - 
The
newmethod constructs the Tree object, you may specify theby_keyoption to let Tree::Binary::XS get the key from the inserted objects. - $tree->insert(hashref $object)
 - 
Once you've defined the
by_key, you can simply pass the object to the insert method, for example:$tree->insert({ id => 11, name => 'John', });And
11will be the key of the object. - $tree->insert(IV key, hashref $object)
 - 
If you want to specify another key to insert the object, you may pass the
keyas the first argument of theinsertmethod. - @ret = $tree->insert_those([ $obj1, $obj2, ... ])
 - $tree->update(IV key, $new_object)
 - $tree->exists(IV key)
 - $tree->exists(hashref $object)
 - $tree->search(IV key)
 - $tree->search(hashref $object)
 
Tree Traversal
- $tree->postorder_traverse(sub { my ($key, $node) = @_; })
 - $tree->preorder_traverse(sub { my ($key, $node) = @_; })
 - $tree->inorder_traverse(sub { my ($key, $node) = @_; })
 
EXPORT
None by default.
SEE ALSO
Tree::Binary, Tree::Binary::Search
AUTHOR
Lin Yo-an, <c9s@local>
COPYRIGHT AND LICENSE
Copyright (C) 2015 by Lin Yo-an
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.18.2 or, at your option, any later version of Perl 5 you may have available.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 138:
 You forgot a '=back' before '=head1'