Giter VIP home page Giter VIP logo

looped-list's Introduction

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]);

looped-list's People

Contributors

romellem avatar dependabot[bot] avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.