暑假再次系统学习《数据结构》!
链表,以某种顺序一个接一个的排列元素的列表。它是动态的,可以自由增加或者减少。
因为JAVA中没有指针,所以我们只能使用引用的概念,使用引用来充当指针的功能。
链表中包含一个头结点与尾结点。很明显,这里的head,last都是LinkList实例的引用。
构造链表:
如果链表中只有一个元素。
从链表中获得数据(Data/Link的GET)。
从链表中设置数据(Data/Link的SET)。
向链表的表头中添加新结点,从表头中删除结点。
在链表非头部的其它位置添加新结点。
链表,以某种顺序一个接一个的排列元素的列表。它是动态的,可以自由增加或者减少。
因为JAVA中没有指针,所以我们只能使用引用的概念,使用引用来充当指针的功能。
public class LinkList {
private int data;//保存在此结点的元素,比如链表中的1,2,3,4,……。
private LinkList link;//在链表中引用下一个结点,类似指针作用,帮助我们指向一个结点的下一个结点的引用。
}
链表中包含一个头结点与尾结点。很明显,这里的head,last都是LinkList实例的引用。
public class LinkList {
LinkList head;//头结点
LinkList last;//尾结点。一般来说,这里的link为null。
构造链表:
public class LinkList {
public LinkList(int iData,LinkList iLink){
this.data= iData;
this. link= iLink;
}
如果链表中只有一个元素。
LinkList list=new LinkList (88,null);
LinkList head= list;
从链表中获得数据(Data/Link的GET)。
/**
*获得当前结点的Data。
*/
public int getData(){
return data;
}
/**
*获得link。link为当前结点指向的下一个引用。
*/
public int getLink(){
return link;
}
从链表中设置数据(Data/Link的SET)。
/**
*设置当前结点的Date。
*/
public void setData(int iData){
data= iData;
}
/**
*设置当前的link。使link指向当前结点的下一个结点。
*/
public void setLink(int iLink){
link= iLink;
}
向链表的表头中添加新结点,从表头中删除结点。
LinkList head= new LinkList (88,head);//添加表头新结点。
LinkList head= head.getLink();//删除
在链表非头部的其它位置添加新结点。
/**
*修改,新结点放置在当前结点之后。
*/
public void AddNewData(int iData){
link= new LinkList(iData,link);
}