public class TwoLinkNode
{
public int data;
public TwoLinkNode prior, next;
public TwoLinkNode(int k)
{
data = k;
prior = next = null;
}
public TwoLinkNode()
{
this(0);
}
public static void main(String args[]) {
int n = 5;
TwoLinkNode head = create(n);
insert(head, 3, 30);
n=n+1;
delete(head,4);
n=n-1;
TwoLinkNode p = head;
System.out.print(p.data + " ");
for (int i = 0; i < n - 1; i++) {
p = p.next;
System.out.print(p.data + " ");
}
System.out.println();
for (int i = 0; i < n; i++) {
System.out.print(p.data + " ");
p = p.prior;
}
}
public static TwoLinkNode create(int n) {
TwoLinkNode p, head = new TwoLinkNode();
head.data = (int) (100 * Math.random());
p = head;
for (int i = 0; i < n - 1; i++) {
TwoLinkNode newNode = new TwoLinkNode((int) (100 * Math.random()));
newNode.prior = p;
p.next = newNode;
p = newNode;
}
return head;
}
public static void insert(TwoLinkNode head,int n,int data){
TwoLinkNode p=head;
for(int i=0;i<n-1;i++)
{
p=p.next;
}
TwoLinkNode newNode=new TwoLinkNode(data);
p.next.prior=newNode;
newNode.next=p.next;
p.next=newNode;
newNode.prior=p;
}
public static void delete(TwoLinkNode head,int n)
{
TwoLinkNode p=head;
for(int i=0;i<n-1;i++)
{
p=p.next;
}
p.prior.next=p.next;
p.next.prior=p.prior;
p.next=null;
p.prior=null;
}
}