SDSL: Succinct Data Structure Library
A C++ template library for succinct data structures
 All Classes Namespaces Files Functions Variables Typedefs Friends
Public Member Functions | Public Attributes
sdsl::lcp_interval< Int > Struct Template Reference

A struct for the representation of an lcp-interval $\ell-[left..right]$. More...

#include <cst_sct.hpp>

List of all members.

Public Member Functions

 lcp_interval (Int l=0, Int left=0, Int right=0)
 Constructor.
bool operator< (const lcp_interval &interval) const
bool operator== (const lcp_interval &interval) const
 Equality operator.
bool operator!= (const lcp_interval &interval) const
 Inequality operator.
lcp_intervaloperator= (const lcp_interval &interval)
 Assignment operator.

Public Attributes

Int l
 The $\ell$ value of the lcp-interval $\ell-[left..right]$.
Int left
 The left border of the lcp-interval $\ell-[left..right]$.
Int right
 The right border of the lcp-interval $\ell-[left..right]$.

Detailed Description

template<class Int = size_t>
struct sdsl::lcp_interval< Int >

A struct for the representation of an lcp-interval $\ell-[left..right]$.

lcp intervals were introduced by Abouelhoda, Kurtz, and Ohlebusch 2004 in the article ,,Replacing Suffix Trees with Enhanced Suffix Arrays''.

Given a lcp array $LCP$ of length $n$. An interval $[left..right]$, where $1\leq i<j\leq n$ is called a lcp-interval of lcp-value $\ell$ (denoted by $\ell-[left..right]$) if

  1. $LCP[left]<\ell$
  2. $LCP[k]\geq \ell$ for all $k$ with $left+1\leq k \leq right$
  3. $LCP[k] = \ell$ for all $k$ with $left+1\leq k \leq right$
  4. $LCP[right+1]<\ell$

In addition to that, we define the lcp-inteval if $left=right$. In this case $\ell=LCP[left]$.

Lcp-intervals are used to represent nodes of the compressed suffix tree sdsl::cst_sct.


Constructor & Destructor Documentation

template<class Int = size_t>
sdsl::lcp_interval< Int >::lcp_interval ( Int  l = 0,
Int  left = 0,
Int  right = 0 
) [inline]

Constructor.

Parameters:
lThe $\ell$ value of the interval lcp-interval $\ell-[left..right]$.
leftThe left border of the interval lcp-interval $\ell-[left..right]$.
rightThe right border of the interval lcp-interval $\ell-[left..right]$.

Member Function Documentation

template<class Int = size_t>
bool sdsl::lcp_interval< Int >::operator!= ( const lcp_interval< Int > &  interval) const [inline]

Inequality operator.

Two lcp-intervals are not equal if and only if not all their corresponding memeber variables have the same values.

template<class Int = size_t>
lcp_interval& sdsl::lcp_interval< Int >::operator= ( const lcp_interval< Int > &  interval) [inline]

Assignment operator.

Parameters:
intervalThe interval which should be assigned to the current object.
template<class Int = size_t>
bool sdsl::lcp_interval< Int >::operator== ( const lcp_interval< Int > &  interval) const [inline]

Equality operator.

Two lcp-intervals are equal if and only if all their corresponding member variables have the same values.


The documentation for this struct was generated from the following file: