looped-list

0.5.1 • Public • Published

Looped List

Simple doubly linked list implementation. Uses a custom class LoopedListItem under the hood for the next and prev pointers.

Example Usage

import { LoopedList } from 'looped-list';

let list = new LoopedList(1);

console.log(list.head.value); // 1

list.insertNext(2);
console.log(list.head.value); // 2

list.insertNext(3);
console.log(list.head.value); // 3

list.move(1);
console.log(list.head.value); // 1

list.move(2);
console.log(list.head.value); // 3

list.move(1);
console.log(list.head.value); // 1

API

These are autogenerated from JSDoc comments in the source code.

Classes

LoopedListItem
LoopedList

LoopedListItem

Kind: global class

new LoopedListItem(value, [is_first])

Param Type Default
value Any
[is_first] Boolean false

loopedListItem.next(n) ⇒ LoopedListItem

Kind: instance method of LoopedListItem

Param Type Default
n Number 1

loopedListItem.prev(n) ⇒ LoopedListItem

Kind: instance method of LoopedListItem

Param Type Default
n Number 1

loopedListItem.insertNext(item) ⇒ LoopedListItem

Kind: instance method of LoopedListItem
Returns: LoopedListItem - Returns the item we just inserted

Param Type
item LoopedListItem

loopedListItem.insertPrev(item) ⇒ LoopedListItem

Kind: instance method of LoopedListItem
Returns: LoopedListItem - Returns the item we just inserted

Param Type
item LoopedListItem

loopedListItem.removeSelf() ⇒ LoopedListItem

Kind: instance method of LoopedListItem

LoopedList

Kind: global class

new LoopedList(value)

Param Type
value Any

loopedList.setHead(value) ⇒ LoopedList

Kind: instance method of LoopedList
Chainable
Returns: LoopedList - Returns this

Param Type Description
value Any If the value is not a LoopedListItem, it'll be converted into one, unless undefined is passed, which essentially "unsets" the head.

loopedList.unsetHead() ⇒ LoopedList

Sets the head to undefined, effectively removing all list items.

Kind: instance method of LoopedList
Chainable
Returns: LoopedList - Returns this

loopedList.init()

Deprecated

Kind: instance method of LoopedList

loopedList.move(steps) ⇒ LoopedList

Moves the head pointer forward or backward by a number of steps.

Kind: instance method of LoopedList
Chainable
Returns: LoopedList - Returns this

Param Type Default Description
steps Number 1 Any number. If a negative number is passed, the head pointer moves backwards.

loopedList.insertNext(item) ⇒ LoopedList

Kind: instance method of LoopedList
Chainable
Returns: LoopedList - Returns this

Param Type
item Any | LoopedListItem

loopedList.insertPrev(item) ⇒ LoopedList

Kind: instance method of LoopedList
Chainable
Returns: LoopedList - Returns this

Param Type
item Any | LoopedListItem

loopedList.popHeadMoveNext() ⇒ LoopedListItem

Kind: instance method of LoopedList
Returns: LoopedListItem - Returns the old head

loopedList.popHeadMovePrev() ⇒ LoopedListItem

Kind: instance method of LoopedList
Returns: LoopedListItem - Returns the old head

loopedList.length() ⇒ Number

Kind: instance method of LoopedList
Returns: Number - Returns the number of items in our LoopedList.

loopedList.find(value) ⇒ LoopedListItem | undefined

Searches for the item and returns that item if it is found. Returns undefined if the value is not found.

Kind: instance method of LoopedList

Param Type Description
value Any | LoopedListItem You can pass in a primative value or a LoopedListItem.

loopedList.@@iteratorAny

An iterator for the LoopedListItem objects.

Kind: instance method of LoopedList
Returns: Any - Yields the LoopedListItem objects in our list, starting with this.head.

loopedList.items() ⇒ Any

An iterator for the LoopedListItem objects.

Kind: instance method of LoopedList
Returns: Any - Yields the LoopedListItem objects in our list, starting with this.head.

loopedList.values() ⇒ Any

An iterator for values of the LoopedListItem objects.

Kind: instance method of LoopedList
Returns: Any - Yields the values of the LoopedListItem objects in our list, starting with this.head.
Example

assert.deepStrictEqual([...(new LoopedList([1, 2, 3])).values()], [1, 2, 3]);

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.5.1
    1
    • latest

Version History

Package Sidebar

Install

npm i looped-list

Weekly Downloads

3

Version

0.5.1

License

MIT

Unpacked Size

57.1 kB

Total Files

8

Last publish

Collaborators

  • romellem