An exponential tree is a type of
search tree
In computer science, a search tree is a tree data structure used for locating specific keys from within a set. In order for a tree to function as a search tree, the key for each node must be greater than any keys in subtrees on the left, and les ...
where the number of children of its nodes decreases doubly-
exponentially
Exponential may refer to any of several mathematical topics related to exponentiation, including:
*Exponential function, also:
**Matrix exponential, the matrix analogue to the above
*Exponential decay, decrease at a rate proportional to value
* Exp ...
with increasing depth. Values are stored only in the leaf nodes. Each node contains a splitter, a value less than or equal to all values in the subtree which is used during search. Exponential trees use another data structure in inner nodes containing the splitters from children, allowing fast lookup.
Exponential trees achieve optimal asymptotic complexity on some operations. They have mainly theoretical importance.
Tree structure
An exponential tree is a
rooted tree
In graph theory, a tree is an undirected graph in which any two vertices are connected by ''exactly one'' path, or equivalently a connected acyclic undirected graph. A forest is an undirected graph in which any two vertices are connected by ' ...
where every node contains a splitter and every leaf node contains a value. The value may be different from the splitter. An exponential tree with
values is defined recursively:
* The root has
children
* The splitter of the root is the same as the splitter of the leftmost child
* The splitters of all children are stored in a local data structure
* The subtrees are exponential trees with
values
An additional condition is that searching for a value using the splitters must yield the correct node (i.e. the one containing the value). Therefore, if a root of a subtree contains the splitter
and it's right sibling contains the splitter
, then this subtree can only contain keys in the range
.
Local data structure
The tree uses a static data structure in every inner node to allow fast lookup of values. It must be possible to build this structure with
values in time
. The lookup time in this structure is denoted
.
A Fusion tree can be used as this data structure.
Operations
Search
The exponential tree can be searched in the same way as a normal search tree. In each node, the local data structure can be used to find the next child quickly.
Let
denote the time complexity of the search. Then it satisfies the following recurrence:
Insert
Delete
References
*
*
Trees (data structures)
{{datastructure-stub