5.单链表
链表就是由多个链结点依次串起来的一种数据结构,每个链结点都有自己的数组还有一个指向下一个链结点的指针地址.
1.描述链结点
public class Link {
//链结点的数据 public int iData; public int dData;
//链结点指向下个结点的地址引用变量 public Link next; public Link(int iData,int dData){ this.iData=iData; this.dData=dData; } public void displayLink(){ System.out.println("{"+this.iData+","+this.dData+"}"); } }
2.单链表描述
public class LinkList { //存储头结点的地址 private Link first; public LinkList(){ this.first=null; }
public boolean isEmpty(){ return this.first==null; }
public void insertFirst(int iData,int dData){ Link newFirst=new Link(iData, dData); newFirst.next=this.first; this.first=newFirst; } public Link deleteFirst(){ Link temp=this.first; this.first=this.first.next; return temp; } public void displayLinkList(){ Link current=this.first; while(current!=null){ current.displayLink(); current=current.next; } } public Link find(int key){ Link current =this.first; while(key!=current.iData){ if(current.next==null){ return null; }else{ current=current.next; } } return current; } public Link delete(int key){ Link current=this.first; Link previous=this.first; while(current.iData!=key){ if(current.next==null){ return null; }else{ previous=current; current=current.next; } } if(current==this.first){ this.first=this.first.next; }else{ previous.next=current.next; } return current; } }
本人倡导的讲解方式:代码示例[学以致用,不仅要知道理论,还要知道理论怎么付诸实践],
文字讲解[不仅知道要怎么用,还要知道是怎么回事],
画图讲解[有图有真相,用图的形式将代码嵌入到理论中,整体理解]