looped-list
v0.5.1
Published
Doubly Linked List implementation
Downloads
29
Readme
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
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
- LoopedList
- new LoopedList(value)
- .setHead(value) ⇒ LoopedList
- .unsetHead() ⇒ LoopedList
- ~~.init()~~
- .move(steps) ⇒ LoopedList
- .insertNext(item) ⇒ LoopedList
- .insertPrev(item) ⇒ LoopedList
- .popHeadMoveNext() ⇒ LoopedListItem
- .popHeadMovePrev() ⇒ LoopedListItem
- .length() ⇒ Number
- .find(value) ⇒ LoopedListItem | undefined
- [.@@iterator](#LoopedList+[@@iterator]) ⇒ Any
- .items() ⇒ Any
- .values() ⇒ Any
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.@@iterator ⇒ 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.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]);