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)