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
loopedListItem.next(n) ⇒ Kind: instance method of LoopedListItem
Param | Type | Default |
---|---|---|
n | Number |
1 |
LoopedListItem
loopedListItem.prev(n) ⇒ Kind: instance method of LoopedListItem
Param | Type | Default |
---|---|---|
n | Number |
1 |
LoopedListItem
loopedListItem.insertNext(item) ⇒ Kind: instance method of LoopedListItem
Returns: LoopedListItem
- Returns the item we just inserted
Param | Type |
---|---|
item | LoopedListItem |
LoopedListItem
loopedListItem.insertPrev(item) ⇒ Kind: instance method of LoopedListItem
Returns: LoopedListItem
- Returns the item we just inserted
Param | Type |
---|---|
item | LoopedListItem |
LoopedListItem
loopedListItem.removeSelf() ⇒ 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
loopedList.setHead(value) ⇒ 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
loopedList.unsetHead() ⇒ 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
loopedList.move(steps) ⇒ 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
loopedList.insertNext(item) ⇒ Kind: instance method of LoopedList
Chainable
Returns: LoopedList
- Returns this
Param | Type |
---|---|
item |
Any | LoopedListItem
|
LoopedList
loopedList.insertPrev(item) ⇒ Kind: instance method of LoopedList
Chainable
Returns: LoopedList
- Returns this
Param | Type |
---|---|
item |
Any | LoopedListItem
|
LoopedListItem
loopedList.popHeadMoveNext() ⇒ Kind: instance method of LoopedList
Returns: LoopedListItem
- Returns the old head
LoopedListItem
loopedList.popHeadMovePrev() ⇒ Kind: instance method of LoopedList
Returns: LoopedListItem
- Returns the old head
Number
loopedList.length() ⇒ Kind: instance method of LoopedList
Returns: Number
- Returns the number of items in our LoopedList.
LoopedListItem
| undefined
loopedList.find(value) ⇒ 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 . |
@@iterator ⇒ Any
loopedList.An iterator for the LoopedListItem
objects.
Kind: instance method of LoopedList
Returns: Any
- Yields the LoopedListItem
objects in our list, starting with this.head
.
Any
loopedList.items() ⇒ An iterator for the LoopedListItem
objects.
Kind: instance method of LoopedList
Returns: Any
- Yields the LoopedListItem
objects in our list, starting with this.head
.
Any
loopedList.values() ⇒ 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]);