Notable Pottery Manufacturer

    container-doublylist

    0.1.3 • Public • Published

    container-doublylist

    DoublyList implementation in JavaScript

    To manage a list of elements. Best use case: elements are frequently removed from the list. Complexity in O(1) for addition and removal.

    Note: Benchmarks seem to show that list iteration is as fast as array iteration on all major browsers.

    To instantiate a new list:

    var myList = new DoublyList();

    To add an element:

    var myObjectReference = myList.add(myObject); // add on front by default
    // or
    var myObjectReference = myList.addFront(myObject);
    // or
    var myObjectReference = myList.addBack(myObject);

    To remove an element:

    myList.removeByReference(myObjectReference); // O(1)
    // or
    myList.remove(myObject); // O(n)

    To pop an element:

    var myObject = myList.pop(); // pop from front by default
    // or
    var myObject = myList.popFront();
    // or
    var myObject = myList.popBack();

    To insert an element before the given node:

    var myOtherObjectReference = myList.addBefore(myObjectReference, myOtherObject);

    To insert an element after the given node:

    var myOtherObjectReference = myList.addAfter(myObjectReference, myOtherObject);

    To move an element to the beginning:

    myList.moveToTheBeginning(myObjectReference);

    To move an element to the end:

    myList.moveToTheEnd(myObjectReference);

    To iterate through the elements:

    for (var node = myList.first; node !== null; node = node.next) {
        node.object += 1;
    }

    To apply a treatment on all the elements:

    myList.forEach(function (object) {
        console.log(object);
    });

    To convert into an array:

    var myArray = myList.toArray();

    Install

    npm i container-doublylist

    DownloadsWeekly Downloads

    142

    Version

    0.1.3

    License

    MIT

    Last publish

    Collaborators

    • notawizard
    • almirkadric
    • stelcheck
    • cstoquer
    • bchevalier
    • tatsujinichi