创建单链表
大家都知道单链表的每一个单位都是由其本身和下一个单位的索引构成的
那么如果要用java来实现单链表的话该如何实现呢
接下来我们用西游记人物来模拟一下单链表的形成过程
下面展示一些 创建过程代码
。
public class SingleListDemo {
public static void main(String[] args) {
xiyou sun = new xiyou(1, "孙悟空");
xiyou tang = new xiyou(2, "唐僧");
xiyou zhu = new xiyou(3, "猪八戒");
xiyou sha = new xiyou(4, "沙僧");
SingleList list = new SingleList();
list.add(sun);
list.add(tang);
list.add(zhu);
list.add(sha);
list.list();
}
}
class SingleList{
//创建头节点
xiyou head = new xiyou(0,"");
//添加方法
public void add(xiyou xiyou){
xiyou temp = head;
while (true){
if (temp.next ==null){
temp.next=xiyou;
break;
}
temp = temp.next;
}
}
//遍历方法
public void list(){
if (head.next==null){
System.out.println("链表为空");
return;
}
xiyou temp = head.next;
while (true){
if (temp==null){
break;
}
System.out.println(temp);
temp=temp.next;
}
}
}
class xiyou{
public int id;
public String name;
public xiyou next;
public xiyou(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "xiyou{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
其中细节
创建单链表单元类xiyou
创建单链表类
创建主方法
- 在创建单元类时注意包含此单元特征结构与下一个单元的索引(下一个单元实例)
- 在重写该单元tostring方法时不添加下一个单元实例的展示
- 单链表类中包含添加方法(add)以及遍历展示方法(list)
- 编写add方法时进入死循环时判断循环结束条件再进行下一步循环增加代码可读性提升代码质量
- list方法开始之前判断链表是否为空提升代码健壮性
运行结果
xiyou{id=1, name='孙悟空'}
xiyou{id=2, name='唐僧'}
xiyou{id=3, name='猪八戒'}
xiyou{id=4, name='沙僧'}
Process finished with exit code 0
结论
通过结果我们发现所谓单链表其实就是两个部分单元体和索引(下一个目标)