LinearLinkedBase
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
LinearBase<E,R,NODE>
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
_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
_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