指针,C语言的灵魂,对于学过C语言的小伙伴,是不是在为链表而头疼,当我们学习Java的时候,是不是很兴奋,再也不用接触指针,但是如果你想要成为中高级程序员,你还是要接触的,当我们学数据结构时,即使你学的语言不同,但都要明白其中的思想,所以说链表是无法避免的,今天我们用Java模拟指针来实现链表,其实链表在我们编程中是很常见的,比如说树形结构,像我们用的操作系统可以在目录中建目录,这也是链表的一种形式。
不多说了,还是干正事吧!
由于java中没有指针这个概念,所以我们只能模拟指针
package com.ye.link;
/**
* java 模拟指针实现链表
* @author :叶振全
* @date 2018年1月29日
*/
public class Link {
private String data; //数据域
private Link nextLink; //指针域
public Link(){
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public Link getNextLink() {
return nextLink;
}
public void setNextLink(Link nextLink) {
this.nextLink = nextLink;
}
}
上面代码是不是很简单
package com.ye.link;
/**
* @author :叶振全
* @date 2018年1月29日
*/
public class LinkTest {
public static void main(String[] args) {
Link link1 = new Link();
link1.setData("1");
Link link2 = new Link();
link2.setData("2");
Link link3 = new Link();
link3.setData("3");
Link link4 = new Link();
link4.setData("4");
Link link5 = new Link();
link5.setData("5");
Link link6 = new Link();
link6.setData("6");
link1.setNextLink(link2);
link2.setNextLink(link3);
link3.setNextLink(link4);
link4.setNextLink(link5);
link5.setNextLink(link6);
Link tLink = link1;
for(int i=0;i<6;i++){
if(i==0){
System.out.println(link1.getData());
}else{
tLink = tLink.getNextLink();
System.out.println(tLink.getData());
}
}
}
}