Skip to main content

LinearLinkedBase

data-structure-typed


data-structure-typed / LinearLinkedBase

Abstract Class: LinearLinkedBase<E, R, NODE>

Defined in: data-structures/base/linear-base.ts:402

Linked-list specialized linear container.

Remarks

Time O(1), Space O(1)

Extends

Extended by

Type Parameters

E

E

Element type.

R

R = any

Return type for mapped/derived views.

NODE

NODE extends LinkedListNode<E> = LinkedListNode<E>

Linked node type.

Properties

length

Get Signature

get abstract length(): number;

Defined in: data-structures/base/linear-base.ts:91

Element count.

Remarks

Time O(1), Space O(1)

Returns

number

Number of elements.

Inherited from

LinearBase.length


maxLen

Get Signature

get maxLen(): number;

Defined in: data-structures/base/linear-base.ts:100

Upper bound for length (if positive), or -1 when unbounded.

Remarks

Time O(1), Space O(1)

Returns

number

Maximum allowed length.

Inherited from

LinearBase.maxLen


toElementFn

Get Signature

get toElementFn(): ((rawElement) => E) | undefined;

Defined in: data-structures/base/iterable-element-base.ts:47

Exposes the current toElementFn, if configured.

Remarks

Time O(1), Space O(1).

Returns

((rawElement) => E) | undefined

The converter function or undefined when not set.

Inherited from

LinearBase.toElementFn

Methods

[iterator]()

iterator: IterableIterator<E>;

Defined in: data-structures/base/iterable-element-base.ts:60

Returns an iterator over the structure's elements.

Parameters

args

...unknown[]

Optional iterator arguments forwarded to the internal iterator.

Returns

IterableIterator<E>

An IterableIterator<E> that yields the elements in traversal order.

Remarks

Producing the iterator is O(1); consuming the entire iterator is Time O(n) with O(1) extra space.

Inherited from

LinearBase.[iterator]


addAfter()

abstract addAfter(existingElementOrNode, newElementOrNode): boolean;

Defined in: data-structures/base/linear-base.ts:609

Insert new element/node after an existing node.

Parameters

existingElementOrNode

E | NODE

Reference element/node.

newElementOrNode

E | NODE

Element/node to insert.

Returns

boolean

true if inserted.

Remarks

Time O(1)~O(n) depending on reference access, Space O(1)


addAt()

abstract addAt(index, newElementOrNode): boolean;

Defined in: data-structures/base/linear-base.ts:377

Insert an element/node at a position.

Parameters

index

number

Position (0-based).

newElementOrNode

E | NODE

Element or node to insert.

Returns

boolean

true if inserted.

Remarks

Time O(1)~O(n) depending on implementation, Space O(1)

Inherited from

LinearBase.addAt


addBefore()

abstract addBefore(existingElementOrNode, newElementOrNode): boolean;

Defined in: data-structures/base/linear-base.ts:600

Insert new element/node before an existing node.

Parameters

existingElementOrNode

E | NODE

Reference element/node.

newElementOrNode

E | NODE

Element/node to insert.

Returns

boolean

true if inserted.

Remarks

Time O(1)~O(n) depending on reference access, Space O(1)


at()

abstract at(index): E | undefined;

Defined in: data-structures/base/linear-base.ts:360

Get element at an index.

Parameters

index

number

Position (0-based).

Returns

E | undefined

Element or undefined.

Remarks

Time O(1)~O(n) depending on implementation, Space O(1)

Inherited from

LinearBase.at


clear()

abstract clear(): void;

Defined in: data-structures/base/iterable-element-base.ts:288

Removes all elements from the structure.

Returns

void

void.

Remarks

Expected Time O(1) or O(n) depending on the implementation; Space O(1).

Inherited from

LinearBase.clear


clone()

abstract clone(): this;

Defined in: data-structures/base/linear-base.ts:321

Deep clone while preserving concrete subtype.

Returns

this

New list of the same species (this type).

Remarks

Time O(n), Space O(n)

Inherited from

LinearBase.clone


concat()

concat(...items): this;

Defined in: data-structures/base/linear-base.ts:473

Concatenate lists/elements preserving order.

Parameters

items

...( | E | LinearBase<E, R, LinkedListNode<E>>)[]

Elements or LinearBase instances.

Returns

this

New list with combined elements (this type).

Remarks

Time O(sum(length)), Space O(sum(length))

Overrides

LinearBase.concat


delete()

abstract delete(elementOrNode): boolean;

Defined in: data-structures/base/linear-base.ts:591

Delete by element or node in a linked list.

Parameters

elementOrNode

E | NODE | undefined

Element or node.

Returns

boolean

true if removed.

Remarks

Time O(1)~O(n) depending on availability of links, Space O(1)

Overrides

LinearBase.delete


deleteAt()

abstract deleteAt(pos): E | undefined;

Defined in: data-structures/base/linear-base.ts:368

Remove element at a position.

Parameters

pos

number

Position (0-based).

Returns

E | undefined

Removed element or undefined.

Remarks

Time O(1)~O(n) depending on implementation, Space O(1)

Inherited from

LinearBase.deleteAt


every()

every(predicate, thisArg?): boolean;

Defined in: data-structures/base/iterable-element-base.ts:86

Tests whether all elements satisfy the predicate.

Parameters

predicate

ElementCallback<E, R, boolean>

Function invoked for each element with signature (value, index, self).

thisArg?

unknown

Optional this binding for the predicate.

Returns

boolean

true if every element passes; otherwise false.

Remarks

Time O(n) in the worst case; may exit early when the first failure is found. Space O(1).

Inherited from

LinearBase.every


fill()

fill(
value,
start?,
end?): this;

Defined in: data-structures/base/linear-base.ts:292

Fill a range with a value.

Parameters

value

E

Value to set.

start?

number = 0

Inclusive start.

end?

number = ...

Exclusive end.

Returns

this

This list.

Remarks

Time O(n), Space O(1)

Inherited from

LinearBase.fill


filter()

abstract filter(predicate, thisArg?): this;

Defined in: data-structures/base/iterable-element-base.ts:340

Filters elements using the provided predicate and returns the same concrete structure type.

Parameters

predicate

ElementCallback<E, R, boolean>

Function with signature (value, index, self) => boolean.

thisArg?

unknown

Optional this binding for the predicate.

Returns

this

A new instance of the same concrete type containing only elements that pass the predicate.

Remarks

Time O(n), Space O(k) where k is the number of kept elements.

Inherited from

LinearBase.filter


find()

Call Signature

find<S>(predicate, thisArg?): S | undefined;

Defined in: data-structures/base/iterable-element-base.ts:162

Finds the first element that satisfies the predicate and returns it.

Finds the first element of type S (a subtype of E) that satisfies the predicate and returns it.

Type Parameters
S

S

Parameters
predicate

ElementCallback<E, R, S>

Type-guard predicate: (value, index, self) => value is S.

thisArg?

unknown

Optional this binding for the predicate.

Returns

S | undefined

The matched element typed as S, or undefined if not found.

Remarks

Time O(n) in the worst case; may exit early on the first match. Space O(1).

Inherited from

LinearBase.find

Call Signature

find(predicate, thisArg?): E | undefined;

Defined in: data-structures/base/iterable-element-base.ts:163

Finds the first element that satisfies the predicate and returns it.

Finds the first element of type S (a subtype of E) that satisfies the predicate and returns it.

Parameters
predicate

ElementCallback<E, R, unknown>

Type-guard predicate: (value, index, self) => value is S.

thisArg?

unknown

Optional this binding for the predicate.

Returns

E | undefined

The matched element typed as S, or undefined if not found.

Remarks

Time O(n) in the worst case; may exit early on the first match. Space O(1).

Inherited from

LinearBase.find


findIndex()

findIndex(predicate, thisArg?): number;

Defined in: data-structures/base/linear-base.ts:151

Find the first index matching a predicate.

Parameters

predicate

ElementCallback<E, R, boolean>

(element, index, self) => boolean.

thisArg?

unknown

Optional this for callback.

Returns

number

Index or -1.

Remarks

Time O(n), Space O(1)

Inherited from

LinearBase.findIndex


forEach()

forEach(callbackfn, thisArg?): void;

Defined in: data-structures/base/iterable-element-base.ts:132

Invokes a callback for each element in iteration order.

Parameters

callbackfn

ElementCallback<E, R, void>

Function invoked per element with signature (value, index, self).

thisArg?

unknown

Optional this binding for the callback.

Returns

void

void.

Remarks

Time O(n), Space O(1).

Inherited from

LinearBase.forEach


getNodeAt()

abstract getNodeAt(index): NODE | undefined;

Defined in: data-structures/base/linear-base.ts:617

Node at index (for random-access emulation).

Parameters

index

number

Position (0-based).

Returns

NODE | undefined

Node or undefined.

Remarks

Time O(n), Space O(1)


has()

has(element): boolean;

Defined in: data-structures/base/iterable-element-base.ts:188

Checks whether a strictly-equal element exists in the structure.

Parameters

element

E

The element to test with === equality.

Returns

boolean

true if an equal element is found; otherwise false.

Remarks

Time O(n) in the worst case. Space O(1).

Inherited from

LinearBase.has


indexOf()

indexOf(searchElement, fromIndex?): number;

Defined in: data-structures/base/linear-base.ts:422

Linked-list optimized indexOf (forwards scan).

Parameters

searchElement

E

Value to match.

fromIndex?

number = 0

Start position.

Returns

number

Index or -1.

Remarks

Time O(n), Space O(1)

Overrides

LinearBase.indexOf


isEmpty()

abstract isEmpty(): boolean;

Defined in: data-structures/base/iterable-element-base.ts:279

Indicates whether the structure currently contains no elements.

Returns

boolean

true if empty; otherwise false.

Remarks

Expected Time O(1), Space O(1) for most implementations.

Inherited from

LinearBase.isEmpty


join()

join(separator?): string;

Defined in: data-structures/base/linear-base.ts:228

Join all elements into a string.

Parameters

separator?

string = ','

Separator string.

Returns

string

Concatenated string.

Remarks

Time O(n), Space O(n)

Inherited from

LinearBase.join


lastIndexOf()

lastIndexOf(searchElement, fromIndex?): number;

Defined in: data-structures/base/linear-base.ts:448

Linked-list optimized lastIndexOf (reverse scan).

Parameters

searchElement

E

Value to match.

fromIndex?

number = ...

Start position.

Returns

number

Index or -1.

Remarks

Time O(n), Space O(1)

Overrides

LinearBase.lastIndexOf


map()

abstract map<EM, RM>(
callback,
options?,
thisArg?): IterableElementBase<EM, RM>;

Defined in: data-structures/base/iterable-element-base.ts:312

Maps each element to a new element and returns a new iterable structure.

Type Parameters

EM

EM

The mapped element type.

RM

RM

The mapped raw element type used internally by the target structure.

Parameters

callback

ElementCallback<E, R, EM>

Function with signature (value, index, self) => mapped.

options?

IterableElementBaseOptions<EM, RM>

Optional options for the returned structure, including its toElementFn.

thisArg?

unknown

Optional this binding for the callback.

Returns

IterableElementBase<EM, RM>

A new IterableElementBase<EM, RM> containing mapped elements.

Remarks

Time O(n), Space O(n).

Inherited from

LinearBase.map


mapSame()

abstract mapSame(callback, thisArg?): this;

Defined in: data-structures/base/iterable-element-base.ts:328

Maps each element to the same element type and returns the same concrete structure type.

Parameters

callback

ElementCallback<E, R, E>

Function with signature (value, index, self) => mappedValue.

thisArg?

unknown

Optional this binding for the callback.

Returns

this

A new instance of the same concrete type with mapped elements.

Remarks

Time O(n), Space O(n).

Inherited from

LinearBase.mapSame


print()

print(): void;

Defined in: data-structures/base/iterable-element-base.ts:268

Prints toVisual() to the console. Intended for quick debugging.

Returns

void

void.

Remarks

Time O(n) due to materialization, Space O(n) for the intermediate representation.

Inherited from

LinearBase.print


push()

abstract push(elementOrNode): boolean;

Defined in: data-structures/base/linear-base.ts:336

Append one element or node to the tail.

Parameters

elementOrNode

E | NODE

Element or node.

Returns

boolean

true if appended.

Remarks

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

Inherited from

LinearBase.push


pushMany()

abstract pushMany(elements): boolean[];

Defined in: data-structures/base/linear-base.ts:344

Append many elements/nodes at once.

Parameters

elements

| Iterable<E, any, any> | Iterable<R, any, any> | Iterable<NODE, any, any>

Iterable of elements or nodes.

Returns

boolean[]

Array of booleans indicating append success.

Remarks

Time O(n), Space O(1)

Inherited from

LinearBase.pushMany


reduce()

Reduces all elements to a single accumulated value.

Param

Reducer of signature (acc, value, index, self) => nextAcc. The first element is used as the initial accumulator.

Param

Reducer of signature (acc, value, index, self) => nextAcc.

Param

The initial accumulator value of type E.

Template

The accumulator type when it differs from E.

Param

Reducer of signature (acc: U, value, index, self) => U.

Param

The initial accumulator value of type U.

Remarks

Time O(n), Space O(1). Throws if called on an empty structure without initialValue.

Call Signature

reduce(callbackfn): E;

Defined in: data-structures/base/iterable-element-base.ts:193

Parameters
callbackfn

ReduceElementCallback<E, R>

Returns

E

Inherited from

LinearBase.reduce

Call Signature

reduce(callbackfn, initialValue): E;

Defined in: data-structures/base/iterable-element-base.ts:194

Parameters
callbackfn

ReduceElementCallback<E, R>

initialValue

E

Returns

E

Inherited from

LinearBase.reduce

Call Signature

reduce<U>(callbackfn, initialValue): U;

Defined in: data-structures/base/iterable-element-base.ts:195

Type Parameters
U

U

Parameters
callbackfn

ReduceElementCallback<E, R, U>

initialValue

U

Returns

U

Inherited from

LinearBase.reduce


reduceRight()

reduceRight<U>(callbackfn, initialValue): U;

Defined in: data-structures/base/linear-base.ts:574

Right-to-left reduction using reverse iterator.

Type Parameters

U

U

Parameters

callbackfn

ReduceLinearCallback<E, U>

(acc, element, index, self) => acc.

initialValue

U

Initial accumulator.

Returns

U

Final accumulator.

Remarks

Time O(n), Space O(1)

Overrides

LinearBase.reduceRight


reverse()

abstract reverse(): this;

Defined in: data-structures/base/linear-base.ts:328

Reverse the order of elements in-place (or equivalent).

Returns

this

This list.

Remarks

Time O(n), Space O(1)

Inherited from

LinearBase.reverse


setAt()

abstract setAt(index, value): boolean;

Defined in: data-structures/base/linear-base.ts:314

Set the value at an index.

Parameters

index

number

Position (0-based).

value

E

New value.

Returns

boolean

true if updated.

Remarks

Time O(1) typical, Space O(1)

Inherited from

LinearBase.setAt


slice()

slice(start?, end?): this;

Defined in: data-structures/base/linear-base.ts:494

Slice via forward iteration (no random access required).

Parameters

start?

number = 0

Inclusive start (supports negative index).

end?

number = ...

Exclusive end (supports negative index).

Returns

this

New list (this type).

Remarks

Time O(n), Space O(n)

Overrides

LinearBase.slice


some()

some(predicate, thisArg?): boolean;

Defined in: data-structures/base/iterable-element-base.ts:109

Tests whether at least one element satisfies the predicate.

Parameters

predicate

ElementCallback<E, R, boolean>

Function invoked for each element with signature (value, index, self).

thisArg?

unknown

Optional this binding for the predicate.

Returns

boolean

true if any element passes; otherwise false.

Remarks

Time O(n) in the worst case; may exit early on first success. Space O(1).

Inherited from

LinearBase.some


sort()

sort(compareFn?): this;

Defined in: data-structures/base/linear-base.ts:185

In-place stable order via array sort semantics.

Parameters

compareFn?

(a, b) => number

Comparator (a, b) => number.

Returns

this

This container.

Remarks

Time O(n log n), Space O(n) (materializes to array temporarily)

Inherited from

LinearBase.sort


splice()

splice(
start,
deleteCount?, ...
items): this;

Defined in: data-structures/base/linear-base.ts:522

Splice by walking node iterators from the start index.

Parameters

start

number

Start index.

deleteCount?

number = 0

How many elements to remove.

items

...E[]

Elements to insert after the splice point.

Returns

this

Removed elements as a new list (this type).

Remarks

Time O(n + m), Space O(min(n, m)) where m = items.length

Overrides

LinearBase.splice


toArray()

toArray(): E[];

Defined in: data-structures/base/iterable-element-base.ts:245

Materializes the elements into a new array.

Returns

E[]

A shallow array copy of the iteration order.

Remarks

Time O(n), Space O(n).

Inherited from

LinearBase.toArray


toReversedArray()

toReversedArray(): E[];

Defined in: data-structures/base/linear-base.ts:237

Snapshot elements into a reversed array.

Returns

E[]

New reversed array.

Remarks

Time O(n), Space O(n)

Inherited from

LinearBase.toReversedArray


toVisual()

toVisual(): E[];

Defined in: data-structures/base/iterable-element-base.ts:257

Returns a representation of the structure suitable for quick visualization. Defaults to an array of elements; subclasses may override to provide richer visuals.

Returns

E[]

A visual representation (array by default).

Remarks

Time O(n), Space O(n).

Inherited from

LinearBase.toVisual


values()

values(): IterableIterator<E>;

Defined in: data-structures/base/iterable-element-base.ts:71

Returns an iterator over the values (alias of the default iterator).

Returns

IterableIterator<E>

An IterableIterator<E> over all elements.

Remarks

Creating the iterator is O(1); full iteration is Time O(n), Space O(1).

Inherited from

LinearBase.values


Protected Members

_toElementFn?

protected optional _toElementFn?: (rawElement) => E;

Defined in: data-structures/base/iterable-element-base.ts:38

The converter used to transform a raw element (R) into a public element (E).

Parameters

rawElement

R

Returns

E

Remarks

Time O(1), Space O(1).

Inherited from

LinearBase._toElementFn

Accessors

_createInstance()

abstract protected _createInstance(options?): this;

Defined in: data-structures/base/linear-base.ts:385

Create an empty list of the same species.

Parameters

options?

LinearBaseOptions<E, R>

Runtime options to carry.

Returns

this

Empty list (this type).

Remarks

Time O(1), Space O(1)

Inherited from

LinearBase._createInstance


_getIterator()

abstract protected _getIterator(...args): IterableIterator<E>;

Defined in: data-structures/base/iterable-element-base.ts:351

Internal iterator factory used by the default iterator.

Parameters

args

...unknown[]

Optional iterator arguments.

Returns

IterableIterator<E>

An iterator over elements.

Remarks

Implementations should yield in O(1) per element with O(1) extra space when possible.

Inherited from

LinearBase._getIterator


_getNodeIterator()

abstract protected _getNodeIterator(...args): IterableIterator<NODE>;

Defined in: data-structures/base/linear-base.ts:624

Iterate linked nodes from head to tail.

Parameters

args

...unknown[]

Returns

IterableIterator<NODE>

Iterator over nodes.

Remarks

Time O(n), Space O(1)


_getPrevNode()

abstract protected _getPrevNode(node): NODE | undefined;

Defined in: data-structures/base/linear-base.ts:632

Get previous node of a given node.

Parameters

node

NODE

Current node.

Returns

NODE | undefined

Previous node or undefined.

Remarks

Time O(1)~O(n) depending on list variant (singly vs doubly), Space O(1)


_getReverseIterator()

abstract protected _getReverseIterator(...args): IterableIterator<E>;

Defined in: data-structures/base/linear-base.ts:392

Reverse-direction iterator over elements.

Parameters

args

...unknown[]

Returns

IterableIterator<E>

Iterator of elements from tail to head.

Remarks

Time O(n), Space O(1)

Inherited from

LinearBase._getReverseIterator