双向环形链表
节点代码:
/////////////////双链表节点/////////////////// public class Link { private int data; private Link next; private Link first; public Link(int data) { this.data = data; } public int getData() { return data; } public void setData(int data) { this.data = data; } public Link getNext() { return next; } public void setNext(Link next) { this.next = next; } public Link getFirst() { return first; } public void setFirst(Link first) { this.first = first; } @Override public String toString() { if (next==null){ return "Link{" + "data=" + data + ", first=" + first.getData() + ", next=null" + '}'; }else if (first==null){ return "Link{" + "data=" + data + ", next=" + next.getData() + ", first=null" + '}'; } return "Link{" + "data=" + data + ", next=" + next.getData() + ", first=" + first.getData() + '}'; } }
链表代码:
////////////////双向链表/////////////// public class DouLink { private Link head; private int size; //初始化头节点 public DouLink(){ head=new Link(0); size=0; } //查询全部 public void getall(){ Link temp = head; int con=0; while (con<size){ temp=temp.getNext(); System.out.println(temp); con++; } } //尾部添加 public void add(Link link){ Link temp = head; int con=0; while (con<size){ temp=temp.getNext(); con++; } temp.setNext(link); link.setFirst(temp); link.setNext(head.getNext()); head.getNext().setFirst(link); size++; } //插入节点 public void insert(int index,Link link){ Link temp =head; int con=1; while (con<size){ if (con==index){ temp.getNext().setFirst(link); link.setNext(temp.getNext()); temp.setNext(link); link.setFirst(temp); size++; } temp=temp.getNext(); con++; } } //删除节点 public void del(int index){ Link temp =head; int con=1; while (con<size){ if (con==index){ temp.getNext().setFirst(temp); temp.setNext(temp.getNext().getNext()); size--; } temp=temp.getNext(); con++; } } }
测试代码(貌似没必要发出来):
////////////双向链表测试//////////////// public class Test { public static void main(String[] args) { //初始化 DouLink link = new DouLink(); //添加 link.add(new Link(11)); link.add(new Link(12)); link.add(new Link(13)); link.getall(); System.out.println(); //插入 link.insert(2,new Link(5)); link.getall(); System.out.println(); //删除 link.del(2); link.getall(); System.out.println(); } }

浙公网安备 33010602011771号