package clink; //双向循环链表 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("头插法获得的链表是:"); d1.show(); System.out.println("==================================");*/ for (int i = 5; i < 10; i++){ d1.insertTail(i); } System.out.println("尾插法获得的链表是:"); d1.show(); System.out.println("=================================="); d1.deleteEntry(5); System.out.println("删除指定数据后的链表是:"); 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(); } }
java的双向循环链表
猜你喜欢
转载自www.cnblogs.com/ioio2/p/8997286.html
今日推荐
周排行