LinkedList in real time

Ujjwal Gupta
2 min readDec 29, 2020

--

A LinkedList is basically a data structure which contains information which are linked with each other.

From programmer point of view - A Linkedlist contains multiple values and every value contains a data and reference to next value.

Linkedlist can be used to implement queue or stack basically linear storage.

In this article- i am going to create a storage wrapper which will use linkedList to store data & perform some functionalities -

We will be doing -

  • Storing value in sorted order
  • printing stored value
  • Checking if value exist

Let’s Code

First we will write program to store value in linked list -

class Storage {
constructor() {
this.root = null;
}
getNewNode(data) {
return {
data: data,
next: null
}
}
add(data) {
const node = this.getNewNode(data);
let root = this.root;
if (root == null) {
this.root = node;
} else {
while (root.next != null) {
root = root.next;
}
root.next = node;
}
}
printAll(){
let root = this.root;
while(root!=null){
console.log(root.data);
root = root.next;
}
}
}
const myStorage = new Storage();
myStorage.add(5);
myStorage.add(51);
myStorage.add(15);
myStorage.printAll();

The above code only store the data but not in ordered way. Let’s see how we can store the data in ordered way.

Store in ordered way

class Storage{

constructor(){
this.root=null;
}

getNewNode(value){
return {
data:value,
next:null
}
}
compareAndstoreInSortedOrder(newNode, root){
const value = newNode.data;
if(root.data>value){
const next = root.next;
newNode.data = root.data;
root.data = value;
root.next = newNode;
newNode.next = next;
}
}

add(value){
let root = this.root;
let newNode = this.getNewNode(value);
if(root==null){
this.root = newNode;
}
else if(root.next==null && root.data> newNode.data){
this.compareAndstoreInSortedOrder(newNode,root);
}
else{
while(root.next!=null){
console.log("root", root.data, value);
this.compareAndstoreInSortedOrder(newNode,root);
root = root.next;
}
root.next = newNode;
}
}
printAll(){
let root = this.root;
while(root!=null){
console.log(root.data);
root = root.next;
}
}
}
const store = new Storage();
store.add(5);
store.add(3);
store.add(10);
store.printAll();

Check if value exist

class Storage{

constructor(){
this.root=null;
}

getNewNode(value){
return {
data:value,
next:null
}
}
compareAndstoreInSortedOrder(newNode, root){
const value = newNode.data;
if(root.data>value){
const next = root.next;
newNode.data = root.data;
root.data = value;
root.next = newNode;
newNode.next = next;
}
}

add(value){
let root = this.root;
let newNode = this.getNewNode(value);
if(root==null){
this.root = newNode;
}
else if(root.next==null && root.data> newNode.data){
this.compareAndstoreInSortedOrder(newNode,root);
}
else{
while(root.next!=null){
console.log("root", root.data, value);
this.compareAndstoreInSortedOrder(newNode,root);
root = root.next;
}
root.next = newNode;
}
}
printAll(){
let root = this.root;
while(root!=null){
console.log(root.data);
root = root.next;
}
}
isExist(value){
let root = this.root;
do{
if(root.data===value){
return true;
}
root = root.next;
}while(root!=null);
return false;
}
}
const store = new Storage();
store.add(5);
store.add(3);
store.add(10);
store.isExist(3) // true
store.isExist(9) // false

--

--

Ujjwal Gupta
Ujjwal Gupta

Written by Ujjwal Gupta

Building starscolab | Ex - Frontend lead Polygon | Creator of jsstore, fortjs | opensource creator | we3, blockchain, solidity | javascript

No responses yet