这个链表的内部是使用双向链表来表示的,但是并未在主函数中进行使用
1 /** 2 * 链表 3 * 2016/4/26 4 **/ 5 class LinkList{ 6 Node head = new Node(); 7 Node tail = new Node(); 8 int size = 0; 9 public LinkList(){ 10 head.next = tail; 11 this.head.date = "head"; 12 tail.last = head; 13 tail.next = null; 14 this.tail.date = "tail"; 15 } 16 17 18 //内部节点类k 19 class Node{ 20 String date; //数据域 21 Node next; //指向下一个节点 22 Node last; //指向上一个节点 23 Node(){}; 24 Node(String date){ 25 this.date = date; 26 this.next = null; 27 this.next = null; 28 } 29 } 30 31 //向链表中添加一个数据 在指定的位置上插入 32 public void Insert(String date){ 33 Node newNode = new Node(date); 34 newNode.next = this.head.next; 35 newNode.last = this.head; 36 this.head.next.last = newNode; 37 this.head.next = newNode; 38 System.out.println("插入数据"+date+"成功"); 39 this.size++; 40 } 41 42 //遍历链表输出 43 public void PrintLink( LinkList linklist){ 44 Node preNode = new Node(); 45 preNode.next = this.head.next; 46 System.out.print("遍历输出结果:"); 47 while(true){ 48 System.out.print(preNode.next.date+" -->"); 49 if(preNode.next.next.next == null) break; 50 preNode.next = preNode.next.next; 51 } 52 System.out.println("遍历输出完成~~~"); 53 } 54 55 //删除链表中的某一个数 56 public void DeleteLink(String date){ 57 Node preNode = new Node(); 58 preNode = this.head; 59 Node node = null; 60 while(preNode.next != this.tail){ 61 62 node = preNode; 63 preNode = preNode.next; 64 if(preNode.date == date){ 65 node.next = preNode.next; 66 System.out.println("删除元素"+date+"成功"); 67 this.size--; 68 } 69 } 70 } 71 } 72 73 public class DoublyLinkList{ 74 //主函数测试 75 public static void main(String[] args){ 76 LinkList linklist = new LinkList(); 77 linklist.Insert("lv1"); 78 linklist.Insert("lv2"); 79 linklist.Insert("lv3"); 80 linklist.Insert("lv4"); 81 linklist.Insert("lv5"); 82 linklist.Insert("lv6"); 83 linklist.Insert("lv7"); 84 linklist.Insert("lv8"); 85 linklist.Insert("lv9"); 86 linklist.Insert("lv0"); 87 linklist.Insert("lv11"); 88 linklist.Insert("lv12"); 89 linklist.Insert("lv13"); 90 linklist.Insert("lv14"); 91 System.out.println("链表的长度为:"+linklist.size); 92 linklist.PrintLink(linklist); 93 //删除lvbiao3 94 linklist.DeleteLink("lv3"); 95 linklist.PrintLink(linklist); 96 97 linklist.DeleteLink("lv14"); 98 99 linklist.DeleteLink("lv12"); 100 101 linklist.PrintLink(linklist); 102 System.out.println("tail:"+linklist.tail.date); 103 } 104 }