Skip to content

AvlTree

Defined in: packages/data/src/tree/avl-tree.ts:35

A self-balancing binary search tree: a BinarySearchTree that keeps every node’s two subtrees within one level of each other.

That invariant bounds the height at ~1.44 log₂(n), so every operation is O(log n) in the worst case — including the sorted-input case that degenerates a plain BinarySearchTree into a linked list. The price is a height field per node and up to O(log n) rotations per insert or delete. Prefer this unless the input is known to arrive unordered.

AVL keeps a tighter height bound than a red-black tree, so lookups are slightly faster and mutations slightly slower; pick on which dominates.

T extends DefinedValue

The element type. Anything except undefined.

new AvlTree<T>(iterable?, options?): AvlTree<T>

Defined in: packages/data/src/tree/avl-tree.ts:36

Iterable<T, any, any>

AvlTreeOptions<T>

AvlTree<T>

BinarySearchTree.constructor

readonly comparator: Comparator<T>

Defined in: packages/data/src/tree/binary-search-tree.ts:51

BinarySearchTree.comparator

get root(): IBinaryTreeNode<T> | null

Defined in: packages/data/src/tree/binary-search-tree.ts:62

The root, or null when empty. Exposed by ISearchTree for traversal.

IBinaryTreeNode<T> | null

BinarySearchTree.root

[iterator](): Iterator<T>

Defined in: packages/data/src/tree/binary-search-tree.ts:67

In-order, so ascending under the comparator.

Iterator<T>

BinarySearchTree.[iterator]


add(value): void

Defined in: packages/data/src/tree/binary-search-tree.ts:81

O(h). A value already held is not re-added.

T

void

BinarySearchTree.add


addAll(values): void

Defined in: packages/data/src/tree/binary-search-tree.ts:119

O(m·h) in the number of values.

Iterable<T>

void

BinarySearchTree.addAll


ceiling(query): T | undefined

Defined in: packages/data/src/tree/binary-search-tree.ts:178

The smallest element >= query. O(h).

T

T | undefined

BinarySearchTree.ceiling


clear(): void

Defined in: packages/data/src/tree/binary-search-tree.ts:75

Removes all elements from the collection.

void

BinarySearchTree.clear


count(): number

Defined in: packages/data/src/tree/binary-search-tree.ts:71

The number of elements in the collection.

A method, not a getter: its async counterpart needs a round trip to the backing store, and a member must have the same shape in both.

number

BinarySearchTree.count


delete(value): boolean

Defined in: packages/data/src/tree/binary-search-tree.ts:131

O(h).

T

boolean

BinarySearchTree.delete


difference(other): ISet<T>

Defined in: packages/data/src/tree/binary-search-tree.ts:266

O((n + m) log n). Ascending.

Iterable<T>

ISet<T>

BinarySearchTree.difference


floor(query): T | undefined

Defined in: packages/data/src/tree/binary-search-tree.ts:155

The largest element <= query. O(h).

T

T | undefined

BinarySearchTree.floor


has(value): boolean

Defined in: packages/data/src/tree/binary-search-tree.ts:126

O(h).

T

boolean

BinarySearchTree.has


height(): number

Defined in: packages/data/src/tree/avl-tree.ts:45

The longest root-to-leaf path, in nodes. 0 when empty. O(1).

number


intersection(other): ISet<T>

Defined in: packages/data/src/tree/binary-search-tree.ts:253

O(m log n). Ascending.

Iterable<T>

ISet<T>

BinarySearchTree.intersection


isDisjointFrom(other): boolean

Defined in: packages/data/src/tree/binary-search-tree.ts:321

O(m log n).

Iterable<T>

boolean

BinarySearchTree.isDisjointFrom


isSubsetOf(other): boolean

Defined in: packages/data/src/tree/binary-search-tree.ts:296

O(n log m).

Iterable<T>

boolean

BinarySearchTree.isSubsetOf


isSupersetOf(other): boolean

Defined in: packages/data/src/tree/binary-search-tree.ts:310

O(m log n).

Iterable<T>

boolean

BinarySearchTree.isSupersetOf


max(): T | undefined

Defined in: packages/data/src/tree/binary-search-tree.ts:150

The largest element. O(h).

T | undefined

BinarySearchTree.max


min(): T | undefined

Defined in: packages/data/src/tree/binary-search-tree.ts:145

The smallest element. O(h).

T | undefined

BinarySearchTree.min


range(from?, to?): IterableIterator<T>

Defined in: packages/data/src/tree/binary-search-tree.ts:206

Every element in [from, to), ascending. O(h + k) in the number yielded.

T

Inclusive lower bound. Unbounded when omitted.

T

Exclusive upper bound. Unbounded when omitted.

IterableIterator<T>

BinarySearchTree.range


symmetricDifference(other): ISet<T>

Defined in: packages/data/src/tree/binary-search-tree.ts:279

O((n + m) log n). Ascending.

Iterable<T>

ISet<T>

BinarySearchTree.symmetricDifference


union(other): ISet<T>

Defined in: packages/data/src/tree/binary-search-tree.ts:243

O((n + m) log n). Ascending.

Iterable<T>

ISet<T>

BinarySearchTree.union