本篇文章主要介绍针对单链表的基本操作,包括前期的创建顺序链表,插入及删除的实现,最后是对单链表的遍历,代码基于Java语言实现。
1.创建结点
单链表的结点包含两部分,数据域存储相关数据,指针域存储下一个结点的地址,如果没有其值为null,在这里定义一个私有的结点类即可:数据类型可任意指定,示例选用字符串
//结点类
private class Node{
private String str; //数据域
Node next; //指针域
}
特殊结点包括头结点和尾结点,这也是后续进行插入或删除需要考虑的边界条件,为方便处理,提前在链表类中定义出来
private Node first; //头结点
private Node last; //尾结点
private int N; //链表大小
链表判空+大小:
//头结点为空即整个链表为空
public boolean isEmpty() {
return first==null;
}
//返回链表大小
public int size() {
return N;
}
2.顺序添加节点
初始创建链表时需要将所有结点顺序链接起来,实际上涉及到的就是在表尾插入结点(特殊边界条件之一)
插入过程如下:
//在表尾插入结点
Node oldlast=last;
last=new Node();
last.str=line;
oldlast.next=last;