Tree::Suffix - Perl interface to the libstree library.


Tree-Suffix documentation Contained in the Tree-Suffix distribution.

Index


Code Index:

NAME

Top

Tree::Suffix - Perl interface to the libstree library.

SYNOPSIS

Top

    use Tree::Suffix;

    $tree = Tree::Suffix->new;
    $tree = Tree::Suffix->new(@strings);

    $bool = $tree->allow_duplicates($bool);

    $count = $tree->insert(@strings);
    $count = $tree->remove(@strings);

    $count = $tree->find($string);
    $count = $tree->match($string);
    $count = $tree->search($string);
    @pos = $tree->find($string);
    @pos = $tree->match($string);
    @pos = $tree->search($string);

    $string = $tree->string($id);
    $string = $tree->string($id, $start ,$end);

    @lcs = $tree->lcs;
    @lcs = $tree->lcs($min_len, $max_len);
    @lcs = $tree->longest_common_substrings;

    @lrs = $tree->lrs;
    @lrs = $tree->lrs($min_len, $max_len);
    @lrs = $tree->longest_repeated_substrings;

    $count = $tree->strings;
    @pos = $tree->strings;

    $count = $tree->nodes;

    $tree->clear;
    $tree->dump;

DESCRIPTION

Top

The Tree::Suffix module provides an interface to the C library libstree, which implements generic suffix trees.

METHODS

Top

$tree = Tree::Suffix->new
$tree = Tree::Suffix->new(@strings)

Creates a new Tree::Suffix object. The constructor will accept a list of strings to be inserted into the tree.

$tree->allow_duplicates($bool)

Determines whether duplicate strings are permitted in the tree. By default, duplicates are allowed. Note, this must be called before strings are inserted for it to have an effect. Returns the value of the flag.

$tree->insert(@strings)

Inserts the list of strings into the tree, excluding duplicates if they are not allowed. Returns the number of successfull insertions.

$tree->remove(@strings)

Remove the list of strings from the tree, including duplicates if they are allowed. Returns the number of successful removals.

$tree->find($string)
$tree->match($string)
$tree->search($string)

In scalar context, returns the number of occurrences of the substring in the tree. In list context, returns the positions of all occurrences of the given string as a list of array references in the form [string_index, start, end].

$tree->string($string_index)
$tree->string($string_index, $start)
$tree->string($string_index, $start, $end)

Returns the string at index_id. The start and end positions may be specified to return a substring.

$tree->lcs
$tree->lcs($min_len, $max_len)
$tree->longest_common_substrings

Returns a list of the longest common substrings. The minimum and maximum length of the considered substrings may be specified.

$tree->lrs
$tree->lrs($min_len, $max_len)
$tree->longest_repeated_substrings

Returns a list of the longest repeated substrings. The minimum and maximum length of the considered substrings may be specified.

$tree->strings

In scalar context, returns the total number of strings in the tree. In list context, returns the list of string indexes.

$tree->nodes

Returns the total number of nodes in the tree.

$tree->clear

Removes all strings from the tree.

$tree->dump

Prints a representation of the tree to STDOUT.

EXAMPLE

Top

To find the longest palindrome of a string:

    use Tree::Suffix;
    $str   = 'mississippi';
    $tree  = Tree::Suffix->new($str, scalar reverse $str);
    ($pal) = $tree->lcs;
    print "Longest palindrome: $pal\n";

This would print:

    Longest palindrome: ississi

SEE ALSO

Top

libstree http://www.icir.org/christian/libstree/

SuffixTree

http://en.wikipedia.org/wiki/Suffix_tree

NOTES

Top

A memory leak will be exhibited if you are using a version of libstree < .4.2.

REQUESTS AND BUGS

Top

When reporting a bug, first verify that you can successfully run the tests in the libstree distribution.

Please report any bugs or feature requests to http://rt.cpan.org/Public/Bug/Report.html?Queue=Tree-Suffix. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc Tree::Suffix

You can also look for information at:

* GitHub Source Repository

http://github.com/gray/tree-suffix

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/Tree-Suffix

* CPAN Ratings

http://cpanratings.perl.org/d/Tree-Suffix

* RT: CPAN's request tracker

http://rt.cpan.org/Public/Dist/Display.html?Dist=Tree-Suffix

* Search CPAN

http://search.cpan.org/dist/Tree-Suffix

COPYRIGHT AND LICENSE

Top

AUTHOR

Top

gray, <gray at cpan.org>


Tree-Suffix documentation Contained in the Tree-Suffix distribution.

package Tree::Suffix;

use strict;
use warnings;

our $VERSION = '0.21';
$VERSION = eval $VERSION;

eval {
    require XSLoader;
    XSLoader::load(__PACKAGE__, $VERSION);
    1;
} or do {
    require DynaLoader;
    DynaLoader::bootstrap(__PACKAGE__, $VERSION);
};

1;

__END__