Test task to develop dynamical data structure: single linked list
npm install node-single_linked_listSingle 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
javascript
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
`javascript
root.addNode(15);
root.addNode({'foo':1,'bar':'tender'});
`
Getting elements value by index
`javascript
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:
`javascript
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'
`javascript
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.
`javascript
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.
`javascript
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.
`javascript
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