Created
June 5, 2018 09:22
-
-
Save prameshbajra/6fbc4da2bffcdba32850327ee96f55c6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.demo.advjava; | |
public class DLList { | |
Node head; | |
class Node { | |
int data; | |
Node prev, next; | |
public Node(int data) { | |
this.data = data; | |
} | |
} | |
public void pushAtFirst(int data) { | |
Node newNode = new Node(data); | |
newNode.prev = null; | |
newNode.next = head; | |
if (head != null) { | |
head.prev = newNode; | |
} | |
head = newNode; | |
} | |
public void pushAfter(int data, int element) { | |
Node newNode = new Node(data); | |
Node previous, current; | |
current = head; | |
previous = head; | |
while (current.data != element) { | |
current = current.next; | |
previous = current; | |
} | |
if (current.next != null) { | |
current = current.next; | |
previous.next = newNode; | |
newNode.prev = previous; | |
current.prev = newNode; | |
newNode.next = current; | |
} else { | |
pushLast(data); | |
} | |
} | |
public void pushBefore(int data, int element) { | |
Node newNode = new Node(data); | |
Node previous, current; | |
current = head; | |
previous = head; | |
while (current.data != element) { | |
current = current.next; | |
previous = current; | |
} | |
if (previous.prev != null) { | |
previous = current.prev; | |
previous.next = newNode; | |
newNode.prev = previous; | |
current.prev = newNode; | |
newNode.next = current; | |
} else { | |
pushAtFirst(data); | |
} | |
} | |
public void pushLast(int data) { | |
Node newNode = new Node(data); | |
Node current = head; | |
while (current.next != null) { | |
current = current.next; | |
} | |
current.next = newNode; | |
newNode.prev = current; | |
} | |
public void printAll(Node node) { | |
while (node != null) { | |
System.out.print(node.data + " "); | |
node = node.next; | |
} | |
} | |
public static void main(String[] args) { | |
DLList dll = new DLList(); | |
dll.pushAtFirst(100); | |
dll.pushAfter(400, 100); | |
dll.pushLast(200); | |
dll.pushAfter(300, 200); | |
dll.pushBefore(23, 400); | |
dll.pushBefore(24, 100); | |
dll.pushBefore(245, 300); | |
dll.printAll(dll.head); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment