linked lists
Tue Aug 16 2022 13:31:18 GMT+0000 (Coordinated Universal Time)
Saved by @kursatoguz
<script>
// A complete working javascript program
// to demonstrate all insertion methods
// on linked list
var head; // head of list
/* Linked list Node */
class Node {
constructor(val) {
this.data = val;
this.next = null;
}
}
/* Inserts a new Node at front of the list. */
function push(new_data) {
/*
* 1 & 2: Allocate the Node & Put in the data
*/
var new_node = new Node(new_data);
/* 3. Make next of new Node as head */
new_node.next = head;
/* 4. Move the head to point to new Node */
head = new_node;
}
/* Inserts a new node after the given prev_node. */
function insertAfter(prev_node , new_data) {
/* 1. Check if the given Node is null */
if (prev_node == null) {
document.write(
"The given previous node cannot be null"
);
return;
}
/*
* 2 & 3: Allocate the Node & Put in the data
*/
var new_node = new Node(new_data);
/* 4. Make next of new Node as next of prev_node */
new_node.next = prev_node.next;
/* 5. make next of prev_node as new_node */
prev_node.next = new_node;
}
/*
* Appends a new node at the end.
This method is defined inside LinkedList class
* shown above
*/
function append(new_data) {
/*
* 1. Allocate the Node & 2.
Put in the data 3. Set next as null
*/
var new_node = new Node(new_data);
/*
* 4. If the Linked List is empty,
then make the new node as head
*/
if (head == null) {
head = new Node(new_data);
return;
}
/*
* 4. This new node is going to be the last node,
so make next of it as null
*/
new_node.next = null;
/* 5. Else traverse till the last node */
var last = head;
while (last.next != null)
last = last.next;
/* 6. Change the next of last node */
last.next = new_node;
return;
}
/*
* This function prints contents of linked list
starting from the given node
*/
function printList() {
var tnode = head;
while (tnode != null) {
document.write(tnode.data + " ");
tnode = tnode.next;
}
}
/*
* Driver program to test above functions.
Ideally this function should be in a
* separate user class. It is kept here
to keep code compact
*/
/* Start with the empty list */
// Insert 6. So linked list becomes 6->NUllist
append(6);
// Insert 7 at the beginning. So linked list becomes
// 7->6->NUllist
push(7);
// Insert 1 at the beginning. So linked list becomes
// 1->7->6->NUllist
push(1);
// Insert 4 at the end. So linked list becomes
// 1->7->6->4->NUllist
append(4);
// Insert 8, after 7. So linked list becomes
// 1->7->8->6->4->NUllist
insertAfter(head.next, 8);
document.write("\nCreated Linked list is: ");
printList();
// This code contributed by gauravrajput1
</script>



Comments