Lists are more flexible and scalable than arrays. It mainly consists of node data and pointers pointing to nodes.
Implementation of nodes in a linked list "elements and pointers":
function (Element) { this. Element = element; This NULL ; };
Single-linked list implementation:
functionLinkedList () {Let Node=function(Element) { This. Element =element; This. Next =NULL; }; Let head=NULL; Let length= 0; This. Append =function(Element) {Let NewNode=NewNode (Element); Let current=NULL; if(Head = =NULL) {Head=NewNode; }Else{ Current=Head; while(current.next) { current=Current.next; } Current.next=NewNode; } length++; }; This. Size =function(){ returnlength; }; This. removeAt =function(POS) {if(Pos >-1 && Pos <length) { varCurrent =Head, Index= 0, prev=NULL; if(pos = = 0) {Head=Current.next; }Else{ while(Index++ <POS) {prev=Current ; Current=Current.next; } Prev.next=Current.next; Length--; returncurrent.element; } }Else{ return NULL; } }; This. Print =function() { let current=Head; while(current) {Console.log (current.element); Current=Current.next; } }; This. Insert =function(pos, Element) {Let NewNode=NewNode (Element); Let current, prev, index= 0; Current=Head; if(POS >= 0 && Pos <=length) { if(pos = = 0) {Newnode.next=Head; Head=NewNode; }Else{ while(Index++ <POS) {prev=Current ; Current=Current.next; } Newnode.next=Current ; Prev.next=NewNode; } length++; return true; }Else { return false; } }; This. toString =function() { let current= Head, String = ' '; while(current) {string+ = Current.element + ', '; Current=Current.next; } returnString.substring (0, String.length-1 ); }; This. indexOf =function(Element) { Let current= Head, index =-1; while(current) {index++; if(Current.element = =Element) { returnindex; } Current=Current.next; } return-1; }; This. remove =function(Element) {Let pos= This. IndexOf (Element); return This. RemoveAt (POS); }; This. IsEmpty =function(){ returnLength = = 0; }; This. GetHead =function(){ returnHead; } } varOlink =NewLinkedList (); Olink.append ("Java" ); Olink.append ("PHP" ); Olink.append ("JavaScript" ); Olink.append ("Python" ); Olink.print (); Console.log ("Number of-----------------------nodes------------------------") Console.log (Olink.size ()); Console.log ("-----------------------before removing the 2nd element------------------------") Console.log (Olink.removeat (2 ) ); Console.log ("-----------------------after removing the 2nd element------------------------") Olink.print (); Console.log ("Number of nodes"); Console.log (Olink.size ()); Console.log ("-----------------------before inserting nodes------------------------") Olink.insert (0, "C language" ); Olink.insert (3, "C + + language" ); Console.log ("-----------------------------------------------after inserting a node") Olink.print (); Olink.insert (4, "Erlang language" ); Console.log ("-----------------------------------------------after inserting a node") Olink.print (); Console.log ("Number of-----------------------nodes------------------------") Console.log (Olink.size ()); Console.log ("-----------------------toString------------------------") Console.log (olink.tostring ()); Console.log ("------------------------indexOf-----------------------" ); Console.log (Olink.indexof ("C Language 2" ) ); Console.log ("------------------------Clear-----------------------" ); Olink.print ();
JavaScript algorithm-Single linked list