dlinkedlist v1.6.4
#dlinkedlist
Simple Doubly Linked List implemented in Javascript (using Webpack). https://github.com/ArcQ/DoublyLinkedListJS
Install:
npm install dlinkedlist
##Iteration
#####Apply To Every Node To apply a callback function one very node, use list.applyToEveryNode() which takes 1-2 arguments:
- callback (required), (always returns true to apply to all nodes)
- arg: optional, if you need to plug arguments into callback
function MakeAllNodesZero(){
var makeNodeZero = function(currentNode,arg){
console.log(arg.test);
currentNode.obj = 0;
}
var callbackArgument = {test};
linkedListTest.applyToEveryNode(makeNodeZero,callbackArgument);
}
//iterate takes 4-5 arguments
#####Iterate With Stop Condition To iterate and apply your callback for a select number of nodes, use list.iterate() which takes 3-4 arguments
- callback (required), returns true if you want to continue (return true to apply to all nodes)
- isForward: true for forwards iteration(required) or false backwards iteration
- starting node
- ifCircular: true if you want tail's next to be head, head's prev to be tail
- arg: optional, if you need to plug arguments into callback
function Iterate(){
var i = 0;
var iterateCallback = function(currentNode){
currentNode.obj = i;
i++;
if(i<3){
return true;
}
else{
return false;
}
}
var startingNode = linkedListTest.tail.prev;
linkedListTest.iterate(iterateCallback,false,startingNode);
}
##Basic Usage #####Create After importing DLinkedList.js
var list = window.dLinkedList();
#####Basic Node Structure
var node = {
obj: obj,
next: null,
prev: null
};
#####Push
var newNode = list.push(1);
#####FindFirst
//Set Search Condition Callback Based on CurrentNode Value
var searchCB = function(currentNode){
return (currentNode.obj == "2");
};
var oneNode = linkedListTest.findFirst(searchCB);
#####Insert
//insert 8 after 5
var searchCB = function(currentNode){
return (currentNode.obj == "1");
};
var oneNode = linkedListTest.findFirst(searchCB);
if (oneNode !== undefined)
{
linkedListTest.insertAfter(oneNode,2);
linkedListTest.insertBefore(oneNode,3);
}
####Remove
var searchCB = function(currentNode){
return (currentNode.obj == "1");
};
var oneNode = linkedListTest.findFirst(searchCB);
linkedListTest.remove(oneNode);
####Get Next (Circular Linked List) Use this function to retrive the next node if your linked list is linked in a circular manner.
var searchCB = function(currentNode){
return (currentNode.obj == "1");
};
var oneNode = linkedListTest.findFirst(searchCB);var twoNode = linkedListTest.cGetNext(oneNode);
####Get Prev (Circular Linked List) Use this function to retrive the previous node if your linked list is linked in a circular manner.
var searchCB = function(currentNode){
return (currentNode.obj == "1");
};
var oneNode = linkedListTest.findFirst(searchCB);var threeNode = linkedListTest.cGetPrev(oneNode);
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago