目录
1.单链表是什么
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
现实世界中的举例说明:
火车:火车其实就是一个链表。每个车厢就是一个元素节点。假设每个车厢只能保存一个数据,每个车厢还连接了下一节车厢,即保存了下一节车厢的地址。
2.单链表的定义
节点类的定义:
class Node{
int val;//保存的元素
Node next;//下一个节点的地址
}
链表类的定义:
public class SingleLinkedList {
Node head;//第一个节点的地址
int size;//节点的个数
}
由于每个节点都保存了下一个节点的地址,因此在链表类中,只需要知道第一个节点的地址即可。
3.单链表的遍历
1.方法1:while循环
public String toString(){
StringBuilder sb=new StringBuilder();
//从当前链表的第一个节点开始遍历,直到走到尾节点为止
//第一个节点head
//尾节点的next值==null
Node temp=head;
while(temp!=null){
sb.append(temp.val);
sb.append("->");
if(temp.next==null){
sb.append("null");
}
temp=temp.next;
}
return sb.toString();
}
}
2.方法2:for循环
public String toString(){
for(Node x=head;x!=null;x=x.next){
sb.append(temp.val);
sb.append("->");
if(x.next==null){
sb.append("null");
}
}
return sb.toString();
}
}
3.实现结果
public class SingleLinkedTest {
public static void main(String[] args) {
SingleLinkedList<Integer>list=new SingleLinkedList<>();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
list.addFirst(4);
list.addFirst(5);
System.out.println(list.toString());
}
}
这里添加了数字1,2,3,4,5,单链表的遍历应该输出
5->4->3->2->1->null
遍历成功。