diff --git a/linked-lists/java/circular.java b/linked-lists/java/circular.java deleted file mode 100644 index 3d6067dc..00000000 --- a/linked-lists/java/circular.java +++ /dev/null @@ -1,69 +0,0 @@ -class CircularLinkedList{ - class Node { - int value; - Node next; - - public Node(int value) { - this.value = value; - } - } - - private Node head = null; - private Node tail = null; - - public void addNode(int value) { - Node newNode = new Node(value); - - if (head == null) { - head = newNode; - } else { - tail.next = newNode; - } - - tail = newNode; - tail.next = head; - } - public void printNodes() { - Node current = head; - if(head == null) { - System.out.println("List is empty"); - return; - } - System.out.println("The circular linked list is: "); - System.out.print("[ "); - do{ - System.out.print(current.value + " "); - current = current.next; - //go to next until we get back to the head - }while(current != head); - System.out.println("]"); - } -} - -public class circular { - public static void main(String [] args){ - CircularLinkedList cll = new CircularLinkedList(); - - cll.addNode(10); - cll.addNode(12); - cll.addNode(2); - cll.addNode(1); - cll.addNode(8); - cll.addNode(42); - cll.addNode(17); - - cll.printNodes(); - - //this will print : - /* - The circular linked list is: - [ 10 12 2 1 8 42 17 ] - */ - } -} - -/* - to run the file: - javac circular.java - java circular -*/ \ No newline at end of file diff --git a/linked-lists/java/clone-linkedlist-with-rnd-pointer.java b/linked-lists/java/clone-linkedlist-with-rnd-pointer.java deleted file mode 100644 index c1849ae7..00000000 --- a/linked-lists/java/clone-linkedlist-with-rnd-pointer.java +++ /dev/null @@ -1,125 +0,0 @@ -// Java program to clone a linked list with random pointers -import java.util.HashMap; -import java.util.Map; - -// Linked List Node class -class Node -{ - int data;//Node data - Node next, random;//Next and random reference - - //Node constructor - public Node(int data) - { - this.data = data; - this.next = this.random = null; - } -} - -// linked list class -class LinkedList -{ - Node head;//Linked list head reference - - // Linked list constructor - public LinkedList(Node head) - { - this.head = head; - } - - // push method to put data always at the head - // in the linked list. - public void push(int data) - { - Node node = new Node(data); - node.next = this.head; - this.head = node; - } - - // Method to print the list. - void print() - { - Node temp = head; - while (temp != null) - { - Node random = temp.random; - int randomData = (random != null)? random.data: -1; - System.out.println("Data = " + temp.data + - ", Random data = "+ randomData); - temp = temp.next; - } - } - - // Actual clone method which returns head - // reference of cloned linked list. - public LinkedList clone() - { - // Initialize two references, one with original - // list's head. - Node origCurr = this.head, cloneCurr = null; - - // Hash map which contains node to node mapping of - // original and clone linked list. - Map map = new HashMap(); - - // Traverse the original list and make a copy of that - // in the clone linked list. - while (origCurr != null) - { - cloneCurr = new Node(origCurr.data); - map.put(origCurr, cloneCurr); - origCurr = origCurr.next; - } - - // Adjusting the original list reference again. - origCurr = this.head; - - // Traversal of original list again to adjust the next - // and random references of clone list using hash map. - while (origCurr != null) - { - cloneCurr = map.get(origCurr); - cloneCurr.next = map.get(origCurr.next); - cloneCurr.random = map.get(origCurr.random); - origCurr = origCurr.next; - } - - //return the head reference of the clone list. - return new LinkedList(map.get(this.head)); - } -} - -// Driver Class -class Main -{ - // Main method. - public static void main(String[] args) - { - // Pushing data in the linked list. - LinkedList list = new LinkedList(new Node(5)); - list.push(4); - list.push(3); - list.push(2); - list.push(1); - - // Setting up random references. - list.head.random = list.head.next.next; - list.head.next.random = - list.head.next.next.next; - list.head.next.next.random = - list.head.next.next.next.next; - list.head.next.next.next.random = - list.head.next.next.next.next.next; - list.head.next.next.next.next.random = - list.head.next; - - // Making a clone of the original linked list. - LinkedList clone = list.clone(); - - // Print the original and cloned linked list. - System.out.println("Original linked list"); - list.print(); - System.out.println("\nCloned linked list"); - clone.print(); - } -} \ No newline at end of file diff --git a/linked-lists/java/doubly.java b/linked-lists/java/doubly.java deleted file mode 100644 index 0f63d763..00000000 --- a/linked-lists/java/doubly.java +++ /dev/null @@ -1,77 +0,0 @@ -class DoublyLinkedList { - class Node{ - int item; - Node previous; - Node next; - - public Node(int item) { - this.item = item; - } - } - - Node head, tail = null; - - public void addNode(int item) { - Node newNode = new Node(item); - - //if list is empty, head and tail points to newNode - if(head == null) { - head = tail = newNode; - //head's previous will be null - head.previous = null; - //tail's next will be null - tail.next = null; - } - else { - //add newNode to the end of list. tail->next set to newNode - tail.next = newNode; - //newNode->previous set to tail - newNode.previous = tail; - //newNode becomes new tail - tail = newNode; - //tail's next point to null - tail.next = null; - } - } - - public void printNodes() { - Node current = head; - if(head == null) { - System.out.println("Doubly linked list is empty"); - return; - } - System.out.println("The doubly linked list is: "); - System.out.print("[ "); - while(current != null) { - System.out.print(current.item + " "); - //go to next - current = current.next; - } - System.out.print("]"); - } -} - -public class doubly { - public static void main(String [] args){ - DoublyLinkedList dl_List = new DoublyLinkedList(); - - dl_List.addNode(5); - dl_List.addNode(7); - dl_List.addNode(1); - dl_List.addNode(17); - dl_List.addNode(27); - - dl_List.printNodes(); - //this will print : - /* - The doubly linked list is: - [ 5 7 1 17 27 ] - */ - } -} - -/* - to run the file: - javac doubly.java - java doubly -*/ \ No newline at end of file diff --git a/linked-lists/java/reverse.java b/linked-lists/java/reverse.java deleted file mode 100644 index 28d04ede..00000000 --- a/linked-lists/java/reverse.java +++ /dev/null @@ -1,78 +0,0 @@ -class LinkedList{ - class Node{ - int item; - Node next; - - public Node(int item) { - this.item = item; - } - } - - Node head = null; - - public void addNode(int item){ - Node newElem = new Node(item); - - if(this.head != null){ - newElem.next = this.head; - } - - this.head = newElem; - } - - public void reverse(){ - Node prev = null; - Node current = this.head; - Node next = null; - - while (current != null) { - next = current.next; - current.next = prev; - prev = current; - current = next; - } - this.head =prev; - } - - public void print() { - Node current = head; - if(head == null) return; - System.out.print("[ "); - while(current != null) { - System.out.print(current.item + " "); - current = current.next; - } - System.out.println("]"); - } -} - -public class reverse{ - - public static void main(String [] args){ - LinkedList list = new LinkedList(); - - list.addNode(2); - list.addNode(7); - list.addNode(1); - list.addNode(8); - list.addNode(5); - - System.out.print("before : \t"); - list.print(); - - list.reverse(); - - System.out.print("after reverse : "); - list.print(); - } -} - -/* - to run the file : - javac reverse.java - java reverse - - results : - before : [ 5 8 1 7 2 ] - after reverse : [ 2 7 1 8 5 ] -*/ \ No newline at end of file diff --git a/linked-lists/java/singly.java b/linked-lists/java/singly.java deleted file mode 100644 index 779e46fc..00000000 --- a/linked-lists/java/singly.java +++ /dev/null @@ -1,64 +0,0 @@ -class Node { - T data; - Node next; - - Node(T data) { - this.data = data; - this.next = null; - } -} - -public class SinglyLinkedList { - Node head; - - SinglyLinkedList() { - this.head = null; - } - - void insertAtHead(T data) { - Node newNode = new Node(data); - if(this.head == null) { - this.head = newNode; - } else { - newNode.next = this.head; - this.head = newNode; - } - } - - T removeAtHead() { - // check for underflow - if(this.head == null) { - System.out.println("Underflow"); - System.exit(1); - } - // store data for return - T data = this.head.data; - this.head = this.head.next; - return data; - } - - void printList() { - // if head is null then list is empty - if(this.head == null) { - System.out.println("List is Empty"); - } else { - // take itr same as head reference and loop through it until it became null - Node itr = this.head; - while(itr != null) { - System.out.print(itr.data + " "); - itr = itr.next; - } - System.out.println(""); - } - } - - // Test Code - public static void main(String... args) { - SinglyLinkedList l = new SinglyLinkedList(); - l.insertAtHead("abc"); - l.insertAtHead("pqr"); - l.insertAtHead("xyz"); - l.removeAtHead(); - l.printList(); - } -}