0% found this document useful (0 votes)
6 views4 pages

Sorted Doublyll

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views4 pages

Sorted Doublyll

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

public class DobleLinklisttester {

public static void main(String[] args) {


DoubleLinked dlist = new DoubleLinked();
dlist.addAtFront(0);
dlist.addAtFront(11);
dlist.addAtRear(55);
dlist.addAtRear(66);
//System.out.println(dlist.deleteFirstNode());
dlist.print();
System.out.println("-------------------");
dlist.printBackwards();
}
}

//

public class Doublelinklist implements Doublefunc{


class Node{
int data;
Node next;
Node previous;
public Node() {
data=0;
next=null;
previous=null;
}
public Node(int data) {
this.data = data;
next = null;
previous = null;
}
}
Node head = null;
Node tail = null;
public Doublelinklist() {
head=null;
tail = null ;
}
@Override
public void addAtFront(int ele) {
Node newnode = new Node(ele);
if(head == null) {
tail=newnode;
head = newnode;
return;
}
Node current =head;
while(current!=null) {
if(current.data>ele) {
if(current==head) {
head.previous=newnode ;
newnode.next=head;
head=newnode;
return;

}
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;
}

//

public class Doubletester {


public static void main(String[] args) {
Doublelinklist sorlist = new Doublelinklist();
sorlist.addAtFront(0);
sorlist.addAtFront(11);
sorlist.addAtFront(22);
sorlist.addAtFront(55);
sorlist.addAtFront(46);
sorlist.addAtFront(15);
sorlist.addAtFront(11);
sorlist.addAtFront(11);
sorlist.deleteAll(11);
sorlist.print();
System.out.println("-------------");
sorlist.printBackwards();
}
}

You might also like