[**data-structure-typed**](../README.md)

***

[data-structure-typed](../README.md) / FibonacciHeap

# Class: FibonacciHeap\<E\>

Defined in: [data-structures/heap/heap.ts:1430](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1430)

Fibonacci heap (min-heap) optimized for fast merges and amortized operations.

## Remarks

Time O(1), Space O(1)

## Example

```ts
examples will be generated by unit test
```

## Type Parameters

### E

`E`

## Constructors

### Constructor

```ts
new FibonacciHeap<E>(comparator?): FibonacciHeap<E>;
```

Defined in: [data-structures/heap/heap.ts:1438](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1438)

Create a FibonacciHeap.

#### Parameters

##### comparator?

`Comparator`\<`E`\>

Comparator to order elements (min-heap by default).

#### Returns

`FibonacciHeap`\<`E`\>

New FibonacciHeap instance.

#### Remarks

Time O(1), Space O(1)

## Accessors

### min

#### Get Signature

```ts
get min(): FibonacciHeapNode<E> | undefined;
```

Defined in: [data-structures/heap/heap.ts:1469](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1469)

Get the current minimum node.

##### Remarks

Time O(1), Space O(1)

##### Returns

[`FibonacciHeapNode`](FibonacciHeapNode.md)\<`E`\> \| `undefined`

Min node or undefined.

***

### root

#### Get Signature

```ts
get root(): FibonacciHeapNode<E> | undefined;
```

Defined in: [data-structures/heap/heap.ts:1452](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1452)

Get the circular root list head.

##### Remarks

Time O(1), Space O(1)

##### Returns

[`FibonacciHeapNode`](FibonacciHeapNode.md)\<`E`\> \| `undefined`

Root node or undefined.

## Methods

### consumeLinkedList()

```ts
consumeLinkedList(head?): FibonacciHeapNode<E>[];
```

Defined in: [data-structures/heap/heap.ts:1518](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1518)

Collect nodes from a circular doubly linked list starting at head.

#### Parameters

##### head?

[`FibonacciHeapNode`](FibonacciHeapNode.md)\<`E`\>

Start node of the circular list.

#### Returns

[`FibonacciHeapNode`](FibonacciHeapNode.md)\<`E`\>[]

Array of nodes from the list.

#### Remarks

Time O(K), Space O(K)

***

### merge()

```ts
merge(heapToMerge): void;
```

Defined in: [data-structures/heap/heap.ts:1589](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1589)

Meld another heap into this heap.

#### Parameters

##### heapToMerge

`FibonacciHeap`\<`E`\>

Another FibonacciHeap to meld into this one.

#### Returns

`void`

void

#### Remarks

Time O(1), Space O(1)

***

### mergeWithChild()

```ts
mergeWithChild(parent, node): void;
```

Defined in: [data-structures/heap/heap.ts:1540](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1540)

Insert a node into a parent's child list (circular).

#### Parameters

##### parent

[`FibonacciHeapNode`](FibonacciHeapNode.md)\<`E`\>

Parent node.

##### node

[`FibonacciHeapNode`](FibonacciHeapNode.md)\<`E`\>

Child node to insert.

#### Returns

`void`

void

#### Remarks

Time O(1), Space O(1)

***

### pop()

```ts
pop(): E | undefined;
```

Defined in: [data-structures/heap/heap.ts:1560](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1560)

Remove and return the minimum element, consolidating the root list.

#### Returns

`E` \| `undefined`

Minimum element or undefined.

#### Remarks

Time O(log N) amortized, Space O(1)

***

### push()

```ts
push(element): boolean;
```

Defined in: [data-structures/heap/heap.ts:1497](https://github.com/zrwusa/data-structure-typed/blob/main/src/data-structures/heap/heap.ts#L1497)

Push an element into the root list.

#### Parameters

##### element

`E`

Element to insert.

#### Returns

`boolean`

True when the element is added.

#### Remarks

Time O(1) amortized, Space O(1)
