java实现链表指定值得删除,查找第二部分代码
1 package com.liu.Link; 2 3 public class LinkList1 { 4 private Link first; 5 public LinkList1() 6 { 7 first = null; 8 } 9 10 public void insertFirst(int id,double dd) 11 { 12 Link newLink = new Link(id,dd); 13 newLink.next = first; 14 first = newLink; 15 } 16 17 public Link find(int key) 18 { 19 Link current = first; 20 while(current.iData!=key) 21 { 22 if(current.next == null) 23 return null; 24 else 25 current = current.next; 26 } 27 return current; 28 } 29 30 public Link delete(int key) 31 { 32 Link current = first; 33 Link previous = first; 34 while(current.iData != key) 35 { 36 if(current.next == null) 37 return null; 38 else 39 { 40 previous = current; 41 current = current.next; 42 } 43 } 44 //情况1,删除的数字就是first指针指向的位置 45 if(current == first) 46 { 47 first = first.next; 48 } 49 //情况2,删除的数字是中间位置 50 else 51 { 52 previous.next = current.next; 53 } 54 //current就是previous.next 55 return current; 56 } 57 58 public void displayList() 59 { 60 System.out.print("List (first-->last):"); 61 Link current = first; 62 while(current != null) 63 { 64 current.displayLink(); 65 current = current.next; 66 } 67 System.out.println(""); 68 } 69 } 70 71 //链表数据类 72 class Link 73 { 74 public int iData; 75 public double dData; 76 public Link next; 77 78 public Link(int id,double dd) 79 { 80 iData = id; 81 dData = dd; 82 } 83 84 public void displayLink() 85 { 86 System.out.print("{"+ iData +", "+ dData +"}"); 87 } 88 89 } 90 91 class LinkListApp 92 { 93 public static void main(String args[]) 94 { 95 LinkList1 theList = new LinkList1(); 96 theList.insertFirst(22, 2.99); 97 theList.insertFirst(44, 4.99); 98 theList.insertFirst(66, 6.99); 99 theList.insertFirst(88, 8.99); 100 theList.insertFirst(33, 3.99); 101 102 theList.displayList(); 103 104 Link f = theList.find(44); 105 if(f!=null) 106 System.out.println("Fount link with key "+f.iData); 107 else 108 System.out.println("can‘t find link"); 109 110 Link d = theList.delete(66); 111 if( d != null ) 112 System.out.println("Deleted link with key " + d.iData); 113 else 114 System.out.println("Can‘t delete link"); 115 116 theList.displayList(); 117 } 118 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。