用java来创建链表

来源:互联网 发布:设计师素材网站知乎 编辑:程序博客网 时间:2024/06/05 09:58

这里采用头插法和尾插法两种方式来创建双链表:

首先,创建一个类来保存数据元素和两个指针:

public class DoubleLink {
int data;
DoubleLink prior;
DoubleLink next;

public DoubleLink(int data){
this.data = data;
prior = null;
next = null;
}
}


然后,创建一个类来创建节点,并为每个节点赋值

public class CreatDoubleLink {
static DoubleLink L;

public static void main(String[] args) {
CreatDoubleLink creat = new CreatDoubleLink();
int[] num = new int[]{1,2,3,4};  //创建一个数组,后面会将数组的值给链表的各个节点

creat.HeadInsert(L,num);
creat.tailInsert(L, num);
}

//头插法创建链表
public void HeadInsert(DoubleLink L,int[] data){
L = new DoubleLink(0);
DoubleLink S;

for(int i=0; i<data.length; i++){
S = new DoubleLink(data[i]);  
S.next = L.next;
if(L.next != null)
L.next.prior = S;
L.next = S;
S.prior = L;
}

showData(L); //将链表中的数据输出
}

public void showData(DoubleLink L){
DoubleLink p = L.next;

while(p != null){  //直到遇到链表结尾
System.out.println(p.data);
p = p.next;
}
}

//尾插法建立链表
public void tailInsert(DoubleLink L,int[] data){
L = new DoubleLink(0);
DoubleLink r = L;
DoubleLink S;

for(int i=0; i<data.length; i++){
S = new DoubleLink(data[i]);
r.next = S;
S.prior = r;
r = S;
}
r.next = null;

System.out.println();
showData(L);  //输出数据
}
}

0 0
原创粉丝点击