Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Heap<T>

Generic binary heap / priority queue with customizable ordering via user-supplied comparator. By default, implements min-heap ordering and uses @thi.ng/compare.

example
h = new Heap([20, 5, 10]);
h.push(15);

h.pop(); // 5
h.pop(); // 10
h.pop(); // 15
h.pop(); // 20
h.pop(); // undefined

Type parameters

  • T

Hierarchy

Implements

  • Iterable<T>
  • IClear
  • ICopy<Heap<T>>
  • IEmpty<Heap<T>>
  • ILength
  • IStack<T, T, Heap<T>>

Index

Constructors

constructor

  • new Heap<T>(values?: null | Iterable<T>, opts?: HeapOpts<T>): Heap<T>
  • Type parameters

    • T

    Parameters

    • Optional values: null | Iterable<T>
    • Optional opts: HeapOpts<T>

    Returns Heap<T>

Properties

compare

compare: Comparator<T>

values

values: T[]

Accessors

length

  • get length(): number

Methods

[Symbol.iterator]

  • [Symbol.iterator](): Generator<T, void, undefined>
  • Returns Generator<T, void, undefined>

children

  • children(n: number): undefined | T[]
  • Parameters

    • n: number

    Returns undefined | T[]

clear

  • clear(): void

copy

empty

heapify

  • heapify(vals?: T[]): void
  • Parameters

    • vals: T[] = ...

    Returns void

into

  • into(vals: Iterable<T>): Heap<T>

leaves

  • leaves(): T[]

max

  • max(n?: number): T[]
  • Returns the largest n values (or less) in heap, based on comparator ordering.

    Parameters

    • n: number = ...

      number of values

    Returns T[]

min

  • min(n?: number): T[]
  • Returns the smallest n values (or less) in heap, based on comparator ordering.

    Parameters

    • n: number = ...

      number of values

    Returns T[]

parent

  • parent(n: number): undefined | T
  • Parameters

    • n: number

    Returns undefined | T

peek

  • peek(): undefined | T

Protected percolateDown

  • percolateDown(i: number, vals?: T[]): void
  • Parameters

    • i: number
    • vals: T[] = ...

    Returns void

Protected percolateUp

  • percolateUp(i: number, vals?: T[]): void
  • Parameters

    • i: number
    • vals: T[] = ...

    Returns void

pop

  • pop(): undefined | T

push

  • push(val: T): Heap<T>

pushPop

  • pushPop(val: T, vals?: T[]): undefined | T
  • Parameters

    • val: T
    • vals: T[] = ...

    Returns undefined | T

pushPopAll

  • pushPopAll(vals: Iterable<T>): undefined | T
  • Calls Heap.pushPop for each given value in vals and returns last result (i.e. the smallest value in heap after processing all vals).

    Parameters

    • vals: Iterable<T>

      values to insert

    Returns undefined | T

replaceHead

  • replaceHead(val: T): T

Static childIndex

  • childIndex(idx: number): number
  • Parameters

    • idx: number

    Returns number

Static parentIndex

  • parentIndex(idx: number): number
  • Parameters

    • idx: number

    Returns number

Generated using TypeDoc