Sorted Doublyll
Sorted Doublyll
//
}
newnode.next=current;
newnode.previous=current.previous;
current.previous.next=newnode;
current.previous=newnode;
break;
}
current =current.next;
}
if(current == null) {
tail.next=newnode;
newnode.previous=tail;
tail=newnode;
return;
}
}
@Override
public void addAtRear(int ele) {
Node newnode = new Node(ele);
newnode.next=null;
newnode.previous=null;
if(head==null) {
tail=newnode;
head = newnode;
return;
}
Node current = tail;
while(current!=null) {
if(current.data <ele) {
newnode.next=current.next;
newnode.previous=current;
current.next.previous=newnode;
current.next=newnode;
break;
}
current=current.previous;
}
if(current == tail) {
tail.next = newnode;
newnode.previous=tail;
tail=newnode;
return;
}
}
@Override
public void print() {
Node current = head;
while(current!=null) {
System.out.println(current.data);
current=current.next;
}
}
@Override
public void printBackwards() {
Node current = tail;
while(current!=null) {
System.out.println(current.data);
current=current.previous;
}
}
@Override
public void delete(int ele) {
if(head==null) return;
if(head.data==ele) {
if(head.next!=null) head.next.previous=null;
head=head.next;
return;
}
Node current =head;
while(current !=null && current.data!=ele) {
current=current.next;
}
if(current==null) return;
if(current==tail) {
tail=tail.previous;
tail.next=null;
return;
}
current.previous.next=current.next;
current.next.previous=current.previous;
return;
}
@Override
public void deleteAll(int ele) {
if(head==null) return;
while(head.data==ele) {
if(head.next!=null) head.next.previous=null;
head=head.next;
}
Node current =head;
while(current !=null && current.data!=ele) {
current=current.next;
}
if(current==null) return;
if(current==tail) {
tail=tail.previous;
tail.next=null;
}
while(current!=null && current.data==ele) {
if(current==tail) {
tail=current.previous;
}
current.previous.next=current.next;
if(current.next!=null)current.next.previous=current.previous;
current=current.next;
}
}
// temp.next=current;
// current.previous=temp;
@Override
public boolean search(int ele) {
if(head.data==ele) {
return true;
}
if(head==null) {
System.out.println("list is empty");
}
Node current=head;
Node previous = null;
while(current!=null) {
if(current.data==ele) {
return true;
}
current=current.next;
}
return false;
}
//