链表_单链表(插入删除查询)
//链结点 public class Link { public int iData; public double dData; public Link next; public Link(int id,double dd) { dData=dd; iData=id; } public void displayLink() { System.out.print("{"+iData+","+dData+"}"+" "); } }
public class LinkList { public Link first; public LinkList() { first=null; } //是否为空 public boolean isEmpty() { return first==null; } //插入 public void insertFirst(int id,double dd) { Link newLink=new Link(id,dd); newLink.next=first;//插入头部,需要将next值为以前的first first=newLink;//改变frist为现在的插入 } //删除头部 public Link deleteFirst() { Link temp=first; first=first.next;//改变头 return temp; } //查找 public Link find(int key) { Link current=first; while(current.iData!=key) { if(current.next!=null) { current=current.next; }else { return null; } } return current; } //删除 public Link delete(int key) { Link current=first; Link previous=first; while(current.iData==key) { if(current.next==null) return null; else { previous=current; current=current.next; } } if(current==first) first=first.next; else previous.next=current.next; return current; } //显示 public void displayList() { Link current=first; while(current!=null) { current.displayLink(); current=current.next; } System.out.println(); } }