Skip to main content


Deno standard library
Go to Latest
class RBTree
extends BSTree<T>
import { RBTree } from "";

A red-black tree. This is a kind of self-balancing binary search tree. The values are in ascending order by default, using JavaScript's built in comparison operators to sort the values.


RBTree(compare?: (a: T, b: T) => number)


root: RBNode<T> | null


removeFixup(parent: RBNode<T> | null, current: RBNode<T> | null)
insert(value: T): boolean

Adds the value to the binary search tree if it does not already exist in it. Returns true if successful.

remove(value: T): boolean

Removes node value from the binary search tree if found. Returns true if found and removed.

Static Methods

from<T>(collection: ArrayLike<T> | Iterable<T> | RBTree<T>): RBTree<T>

Creates a new red-black tree from an array like or iterable object.

from<T>(collection: ArrayLike<T> | Iterable<T> | RBTree<T>, options: { Node?: RBNode; compare?: (a: T, b: T) => number; }): RBTree<T>
from<T, U, V>(collection: ArrayLike<T> | Iterable<T> | RBTree<T>, options: { compare?: (a: U, b: U) => number; map: (value: T, index: number) => U; thisArg?: V; }): RBTree<U>