package clink; // Double circular linked list public class TestDoubleLink { public static void main(String[] args) { // TODO Auto-generated method stub DoubleLink d1=new DoubleLink(); /*for (int i = 0; i < 6; i++){ d1.insertHead(i); } System.out.println("The linked list obtained by the header insertion method is: "); d1.show(); System.out.println("==================================");*/ for (int i = 5; i < 10; i++){ d1.insertTail(i); } System.out.println( "The linked list obtained by tail insertion is: " ); d1.show(); System.out.println("=================================="); d1.deleteEntry(5); System.out.println( "The linked list after deleting the specified data is: " ); d1.show(); /*d1.insertHead(5); d1.show();*/ } } class DoubleLink{ class Entry{ int data; Entry next; Entry prio; public Entry(){ this.data =-1; this.next=null; this.prio=null; } public Entry(int data){ this.data =data; this.next=null; this.prio=null; } } private Entry head=null; public DoubleLink(){ this.head=new Entry(); } public void insertHead(int val){ Entry entry = new Entry(val); entry.next=head.next; entry.prio=head; head.next=entry; if(entry.next!=null){ entry.next.prio=entry; } } public void insertTail(int val){ Entry cur=this.head; while(cur.next!=null){ cur=cur.next; } Entry entry=new Entry(val); cur.next=entry; entry.prio = cur; } public void deleteEntry(int val){ Entry cur = this.head.next; while(cur!=null){ if(cur.data==val){ cur.prio.next=cur.next; if(cur.next!=null){ cur.next.prio = cur.prio; } cur=cur.next; } } } public void show(){ Entry cur=this.head.next; while(cur!=null){ System.out.println(cur.data+""); cur=cur.next; } System.out.println(); } }