近来越来越感觉数据结构和算法的重要性,于是决定花时间整理一下数据结构,一来希望自己能够更加深刻地理解数据结构,二来也希望和大家认真分享一下自己的理解,希望能够一起学习,一起进步,开心每一天。
今天先复习一下数据结构中比较常见的链表。本文以图示方法和代码演示详细地对链表及相关演变的链表做一个详细的讲解。希望看到这边文章的各位博友能够评论一下,哪怕是发个“已读”也好,感觉这样才有讨论的学习氛围。
单链表
这是链表中结构最简单的,一个单链表的节点(Node)分为两部分,第一个部分保存或者显示节点的信息,另一个部分存储的是下一个节点的地址,最后一个节点存储的地址的部分指向的是空值。
单向链表的图示(上班也挺忙的,盗个图)
单链表只可向一个方向遍历,一般查找一个节点的时候需要从第一个节点开始访问,一直访问到需要的位置。而插入一个节点,对于单链表,我们只提供在链表头插入,只需要将当前插入的节点设置为头结点,next节点指向原头节点即可,删除一个节点,我们将该节点的前一个节点的next指向该节点的下一个节点。
单链表中插入新的节点
删除节点
代码实现:
public class SingleLinkedList {
private int size; //链表节点的个数
private Node head;
public SingleLinkedList(){
size = 0;
head = null;
}
private class Node{
private Objec