Options
All
  • Public
  • Public/Protected
  • All
Menu

A singly-linked list, which is sometimes slower than a doubly-linked list but consumes less memory.

import { SingleLinkedList } from "scl"

The following table summarises the time complexity of the most commonly used properties.

Property name Worst-case
append() O(n)
insertAfter() O(1)
insertBefore() O(n)
deleteAt() O(n)
prepend() O(1)
size O(1)

Some remarks:

  • Deleting at the beginning of a singly-linked list is guaranteed to be in O(1).
see

DoubleLinkedList

see

Vector

Type parameters

  • T

    The type of element in this collection.

Hierarchy

Implements

Index

Constructors

constructor

  • Construct a singly-linked list.

    const l = new SingleLinkedList();
    

    You can also constrcut a linked list from any iterable, like so:

    const l = new SingleinkedList([1, 2, 3])
    

    Type parameters

    • T

    Parameters

    • Optional iterable: Iterable<T>

    Returns SingleLinkedList<T>

Accessors

size

  • get size(): number
  • Count the amount of elements in the collection.

    ⚠️ In most cases, this should be an O(1) operation. However, there are cases where this can be an O(n) operation. Therefore, it is recommended to always cache the result in a local variable.

    Returns number

Methods

[Symbol.iterator]

  • [Symbol.iterator](): IterableIterator<T>
  • Returns an object which is able to sift through the values in this collection.

    The order by which the elements are traversed depends on the kind of collection. For unordered collections, the iteration order is unspecified and may even differ between two iterations on the same collection.

    Returns IterableIterator<T>

add

  • add(element: T): [boolean, SingleLinkedListCursor<T>]

append

  • append(el: T): SingleLinkedListCursor<T>

at

  • at(position: number): SingleLinkedListCursor<T>
  • Return a cursor that is placed at the index given by position in the sequence.

    Parameters

    • position: number

    Returns SingleLinkedListCursor<T>

clear

  • clear(): void
  • Remove all elements from this collection, effectively setting the collection to the empty collection.

    Returns void

clone

delete

  • delete(element: T): boolean

deleteAll

  • deleteAll(el: T): number

deleteAt

  • deleteAt(pos: SingleLinkedListCursor<T>): void

first

  • first(): T

getAt

  • getAt(index: number): T
  • Allows taking an element directly out of the collection at a given position.

    This method might be faster than at because it is not forced to construct a cursor object.

    Parameters

    • index: number

    Returns T

has

  • has(el: T): boolean

insertAfter

  • insertAfter(pos: SingleLinkedListCursor<T>, el: T): SingleLinkedListCursor<T>
  • Parameters

    • pos: SingleLinkedListCursor<T>
    • el: T

    Returns SingleLinkedListCursor<T>

insertBefore

  • insertBefore(pos: SingleLinkedListCursor<T>, el: T): SingleLinkedListCursor<T>
  • Parameters

    • pos: SingleLinkedListCursor<T>
    • el: T

    Returns SingleLinkedListCursor<T>

last

  • last(): T

prepend

  • prepend(el: T): SingleLinkedListCursor<T>

rest

toRange

  • toRange(): SingleLinkedListRange<T>

Legend

  • Property
  • Method
  • Accessor
  • Property
  • Method
  • Inherited property
  • Inherited method

Generated using TypeDoc