JSFiddle - React, Tailwind, and code Playground
by JInks Peng
JavaScript
function Node(elem) {
this.elem = elem;
this.next = null;
this.previous = null;
}
function LList() {
this.head = new Node("head");
this.find = find;
this.insert = insert;
this.display = display;
this.remove = remove;
this.findLast = findLast;
this.dispReverse = dispReverse;
}
function find(item) {
var currNode = this.head;
while(currNode.elem !== item) {
currNode = currNode.next;
}
return currNode;
}
function insert(newElem,item) {
var newNode = new Node(newElem);
var currNode = this.find(item);
newNode.next = currNode.next;
newNode.previous = currNode;
currNode.next = newNode;
}
function display() {
var currNode = this.head;
while(!(currNode.next === null)) {
console.log(currNode.next.elem);
currNode = currNode.next;
}
}
function remove(item) {
var currNode = this.find(item);
if(!(currNode.next === null)) {
currNode.previous.next = currNode.next;
currNode.next.previous = currNode.previous;
currNode.next = null;
currNode.previous = null;
}
}
function findLast() {
var currNode = this.head;
while(!(currNode.next === null)) {
currNode = currNode.next;
}
return currNode;
}
function dispReverse() {
var currNode = this.findLast();
while(!(currNode.previous === null)) {
console.log(currNode.elem);
currNode = currNode.previous;
}
}
var cities = new LList();
cities.insert("Conway","head");
cities.insert("Russllville","Conway");
cities.insert("Carlisle","Russllville");
cities.insert("Alma","Carlisle");
cities.display();
console.log("");
cities.remove("Carlisle");
cities.display();
console.log("");
cities.dispReverse();