Skip to main content

LinearBase

data-structure-typed


data-structure-typed / LinearBase

Abstract Class: LinearBase<E, R, NODE>

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

Abstract linear container with array-like utilities.

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 used by some implementations.

Constructors​

Constructor​

new LinearBase<E, R, NODE>(options?): LinearBase<E, R, NODE>;

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

Construct a linear container with runtime options.

Parameters​

options?​

LinearBaseOptions<E, R>

{ maxLen?, ... } bounds/behavior options.

Returns​

LinearBase<E, R, NODE>

Remarks​

Time O(1), Space O(1)

Overrides​

IterableElementBase.constructor

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.


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.


toElementFn​

Get Signature​

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

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

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​

IterableElementBase.toElementFn

Methods​

[iterator]()​

iterator: IterableIterator<E>;

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

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​

IterableElementBase.[iterator]


addAt()​

abstract addAt(index, newElementOrNode): boolean;

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

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)


at()​

abstract at(index): E | undefined;

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

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)


clear()​

abstract clear(): void;

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

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​

IterableElementBase.clear


clone()​

abstract clone(): this;

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

Deep clone while preserving concrete subtype.

Returns​

this

New list of the same species (this type).

Remarks​

Time O(n), Space O(n)

Overrides​

IterableElementBase.clone


concat()​

concat(...items): this;

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

Concatenate elements and/or containers.

Parameters​

items​

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

Elements or other containers.

Returns​

this

New container with combined elements (this type).

Remarks​

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


delete()​

abstract delete(elementOrNode): boolean;

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

Remove one element or node if present.

Parameters​

elementOrNode​

E | NODE | undefined

Element or node to delete.

Returns​

boolean

true if removed.

Remarks​

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


deleteAt()​

abstract deleteAt(pos): E | undefined;

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

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)


entries()​

entries(): IterableIterator<[number, E]>;

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

Return an iterator of [index, value] pairs (Array-compatible).

Returns​

IterableIterator<[number, E]>

Remarks​

Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.

Inherited from​

IterableElementBase.entries


every()​

every(predicate, thisArg?): boolean;

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

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​

IterableElementBase.every


fill()​

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

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

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)


filter()​

abstract filter(predicate, thisArg?): this;

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

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​

IterableElementBase.filter


find()​

Call Signature​

find<S>(predicate, thisArg?): S | 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.

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​

IterableElementBase.find

Call Signature​

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

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

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​

IterableElementBase.find


findIndex()​

findIndex(predicate, thisArg?): number;

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

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)


forEach()​

forEach(callbackfn, thisArg?): void;

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

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​

IterableElementBase.forEach


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​

IterableElementBase.has


includes()​

includes(element): boolean;

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

Check whether a value exists (Array-compatible alias for has).

Parameters​

element​

E

Element to search for (uses ===).

Returns​

boolean

true if found.

Remarks​

Provided for familiarity when migrating from Array. Time O(n), Space O(1).

Inherited from​

IterableElementBase.includes


indexOf()​

indexOf(searchElement, fromIndex?): number;

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

First index of a value from the left.

Parameters​

searchElement​

E

Value to match.

fromIndex?​

number = 0

Start position (supports negative index).

Returns​

number

Index or -1 if not found.

Remarks​

Time O(n), Space O(1)


isEmpty()​

abstract isEmpty(): boolean;

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

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​

IterableElementBase.isEmpty


join()​

join(separator?): string;

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

Join all elements into a string.

Parameters​

separator?​

string = ','

Separator string.

Returns​

string

Concatenated string.

Remarks​

Time O(n), Space O(n)


keys()​

keys(): IterableIterator<number>;

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

Return an iterator of numeric indices (Array-compatible).

Returns​

IterableIterator<number>

Remarks​

Provided for familiarity when migrating from Array. Time O(n), Space O(1) per step.

Inherited from​

IterableElementBase.keys


lastIndexOf()​

lastIndexOf(searchElement, fromIndex?): number;

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

Last index of a value from the right.

Parameters​

searchElement​

E

Value to match.

fromIndex?​

number = ...

Start position (supports negative index).

Returns​

number

Index or -1 if not found.

Remarks​

Time O(n), Space O(1)


map()​

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

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

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​

IterableElementBase.map


mapSame()​

abstract mapSame(callback, thisArg?): this;

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

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​

IterableElementBase.mapSame


print()​

print(): void;

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

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​

IterableElementBase.print


push()​

abstract push(elementOrNode): boolean;

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

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)


pushMany()​

abstract pushMany(elements): boolean[];

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

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)


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:225

Parameters​
callbackfn​

ReduceElementCallback<E, R>

Returns​

E

Inherited from​

IterableElementBase.reduce

Call Signature​

reduce(callbackfn, initialValue): E;

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

Parameters​
callbackfn​

ReduceElementCallback<E, R>

initialValue​

E

Returns​

E

Inherited from​

IterableElementBase.reduce

Call Signature​

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

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

Type Parameters​
U​

U

Parameters​
callbackfn​

ReduceElementCallback<E, R, U>

initialValue​

U

Returns​

U

Inherited from​

IterableElementBase.reduce


reduceRight()​

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

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

Right-to-left reduction over elements.

Type Parameters​

U​

U

Parameters​

callbackfn​

ReduceLinearCallback<E, U>

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

initialValue​

U

Initial accumulator (optional generic overloads supported).

Returns​

U

Final accumulator.

Remarks​

Time O(n), Space O(1)


reverse()​

abstract reverse(): this;

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

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

Returns​

this

This list.

Remarks​

Time O(n), Space O(1)


setAt()​

abstract setAt(index, value): boolean;

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

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)


slice()​

slice(start?, end?): this;

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

Create a shallow copy of a subrange.

Parameters​

start?​

number = 0

Inclusive start (supports negative index).

end?​

number = ...

Exclusive end (supports negative index).

Returns​

this

New list with the range (this type).

Remarks​

Time O(n), Space O(n)


some()​

some(predicate, thisArg?): boolean;

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

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​

IterableElementBase.some


sort()​

sort(compareFn?): this;

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

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)


splice()​

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

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

Remove and/or insert elements at a position (array-compatible).

Parameters​

start​

number

Start index (supports negative index).

deleteCount?​

number = 0

How many to remove.

items​

...E[]

Elements to insert.

Returns​

this

Removed elements as a new list (this type).

Remarks​

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


toArray()​

toArray(): E[];

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

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​

IterableElementBase.toArray


toReversed()​

toReversed(): this;

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

Return a new instance of the same type with elements in reverse order (non-mutating).

Returns​

this

A new reversed instance.

Remarks​

Provided for familiarity when migrating from Array (ES2023 toReversed). Time O(n), Space O(n).


toReversedArray()​

toReversedArray(): E[];

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

Snapshot elements into a reversed array.

Returns​

E[]

New reversed array.

Remarks​

Time O(n), Space O(n)


toVisual()​

toVisual(): E[];

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

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​

IterableElementBase.toVisual


values()​

values(): IterableIterator<E>;

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

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​

IterableElementBase.values


Protected Members​

_toElementFn?​

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

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

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​

IterableElementBase._toElementFn

Accessors​

_createInstance()​

abstract protected _createInstance(options?): this;

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

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)


_getIterator()​

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

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

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​

IterableElementBase._getIterator


_getReverseIterator()​

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

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

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)