node-single_linked_list
v1.1.2
Published
Test task to develop dynamical data structure: single linked list
Downloads
1
Maintainers
Readme
JS Test Task #1: Single Linke List
Single Linked List is dynamical data structure addon to JS that allows you to create linked and linked circular lists.
Note: circular lists is read-only
Module description
Initializing the list
const Node = require('node-single_linked_list').SingleLinkedList;
let root = new Node(0);
let root2 = new Node(0);
root2.addNode(1);
root2.addNode(0);
Adding extra nodes to the end of the list
root.addNode(15);
root.addNode({'foo':1,'bar':'tender'});
Getting elements value by index
root.getValue(1); //returns '15'
Make list circular (and read-only) or connect it with another list if you need it
This function always takes last element of the list and set next element link as pointer from parameters:
root.addNext(root); //now list is circular with tail-head connection
Count nodes from pointed position in list
Note: if list is circular function will return '-1'
Node.getNextTotal(root); //returns '-1'
Check if list is circular
This is static function that returns true/false if list circular or not and '-1' if pointer is wrong.
Node.isCircular(root); //returns 'true'
Check if list contains palindrome
This is static function that returns true/false if list contains palindrome or not and '-1' if pointer is wrong or function is circular.
Node.isPalindrome(root2); //returns 'true'
Remove duplicates from list
This is static function that removes duplicates from list (if exist) returns '0' if all ok and '-1' if pointer is wrong or list is circular.
Node.removeDuplicates(root2); //returns '0'
root2.getValue(2); //returns out of border error
Getting started
Install
npm install node-single_linked_list
Running tests
npm test
P.S.: for additional info see JSDocs