Skip to content

Instantly share code, notes, and snippets.

@deepaksinghvi
Created May 1, 2019 14:40
Show Gist options
  • Save deepaksinghvi/d93517d4eddde6dd3396cc9972cb7d68 to your computer and use it in GitHub Desktop.
Save deepaksinghvi/d93517d4eddde6dd3396cc9972cb7d68 to your computer and use it in GitHub Desktop.
/**
* Author: Deepak Singhvi
*/
class DequeueImpl {
private Deque head;
private Deque tail;
public DequeueImpl() {
}
public void insertAtFirst(Integer element) {
Deque newNode = new Deque();
newNode.setData(element);
if (isEmpty()) {
head = tail = newNode;
} else {
newNode.next = head;
head.prev = newNode;
head = newNode;
}
}
public void insertAtLast(Integer element) {
Deque newNode = new Deque();
newNode.setData(element);
if (isEmpty()) {
head = tail = newNode;
} else {
newNode.prev = tail;
tail.next = newNode;
tail = newNode;
}
}
public Integer removeFirst() {
if (isEmpty()) {
System.out.println("No element found");
return null;
}
Integer value = head.getData();
head = head.next;
head.prev = null;
return value;
}
public Integer removeLast() {
if (isEmpty()) {
System.out.println("No element found");
return null;
}
Integer value = tail.getData();
tail = tail.prev;
tail.next = null;
return value;
}
public boolean isEmpty() {
return null == head ? true : false;
}
@Override
public String toString() {
if (isEmpty()) {
return "";
}
StringBuilder sb = new StringBuilder();
Deque temp = head;
while (temp != null) {
sb.append(temp.getData()).append("->");
temp = temp.next;
}
return sb.toString();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment