Adding in more Algorithms and Data Structures implemented in Java
This commit is contained in:
93
src/CircularLinkedList.java
Normal file
93
src/CircularLinkedList.java
Normal file
@@ -0,0 +1,93 @@
|
||||
public class CircularLinkedList {
|
||||
|
||||
public int size = 0;
|
||||
public Node head = null;
|
||||
public Node tail = null;
|
||||
|
||||
public static void main(String[] args) {
|
||||
CircularLinkedList myList = new CircularLinkedList();
|
||||
myList.addNodeToHead(75);
|
||||
myList.addNodeToHead(50);
|
||||
myList.addNodeToHead(25);
|
||||
myList.print();
|
||||
myList.addNodeToTail(100);
|
||||
myList.print();
|
||||
myList.rotateElement();
|
||||
myList.print();
|
||||
myList.deleteNodeFromTail();
|
||||
myList.print();
|
||||
myList.deleteNodeFromHead();
|
||||
myList.print();
|
||||
|
||||
}
|
||||
|
||||
// Add a new Node at the start of the Linked List
|
||||
public void addNodeToHead(int element) {
|
||||
Node n = new Node(element);
|
||||
|
||||
if (size == 0) {
|
||||
head = n;
|
||||
tail = n;
|
||||
} else {
|
||||
n.next = head;
|
||||
head = n;
|
||||
tail.next = head;
|
||||
}
|
||||
|
||||
size++;
|
||||
}
|
||||
|
||||
// Add a new Node to the Tail of the Linked List
|
||||
public void addNodeToTail(int element) {
|
||||
if (size == 0) {
|
||||
addNodeToHead(element);
|
||||
} else {
|
||||
Node n = new Node(element);
|
||||
tail.next = n;
|
||||
tail = n;
|
||||
tail.next = head;
|
||||
size++;
|
||||
}
|
||||
}
|
||||
|
||||
public void rotateElement() {
|
||||
System.out.println("Rotating!");
|
||||
tail = head;
|
||||
head = head.next;
|
||||
}
|
||||
|
||||
public void deleteNodeFromTail() {
|
||||
System.out.println("\nDeleting Node " + tail.element + " from Tail");
|
||||
|
||||
if (tail.next == tail) {
|
||||
tail = null;
|
||||
}
|
||||
|
||||
Node newTail = tail;
|
||||
|
||||
while (newTail.next != tail) {
|
||||
newTail = newTail.next;
|
||||
}
|
||||
|
||||
newTail.next = tail.next;
|
||||
tail = newTail;
|
||||
}
|
||||
|
||||
public void deleteNodeFromHead() {
|
||||
head = head.next;
|
||||
tail.next = head;
|
||||
size--;
|
||||
}
|
||||
|
||||
public void print() {
|
||||
System.out.println("The List so far: ");
|
||||
Node temp = head;
|
||||
|
||||
do {
|
||||
System.out.print(" " + temp.element);
|
||||
temp = temp.next;
|
||||
} while (temp != head);
|
||||
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user