简单介绍的单链表

简单介绍的单链表

java中多个集合的底层是基于数组实现,通过索引快速定位数据,并对数据进行删除等操作,但问题是,数组有自身的局限性,如果知道下标索引还好,但是不知道的话就要一个个遍历查找,然后再进行操作,删除一个数据,对于数组来说,根据索引定位到数据,删除这条数据,然后数据进行位置的移动,这个时间复杂度应该是2logN,尤其是重新调整位置使得性能开销较大,所以就需要链表来增删。

链表的分类有很多种,比如单链表,双端链表,双向链表,单向链表等,单链表是其他链表的基础,掌握了单链表实现其他的就好理解了。

在这里插入图片描述

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author Mr.Zhang
 * @version 1.0
 * @program:sss
 * @date 2021/5/8 16:49
 */
public class Node {
    private Object data;//存储数据
    private Node next;//下一节点

    public Node(Object data,Node next) {
        this.data = data;
        this.next = next;
    }

    public static void main(String[] args) {
        //头节点
        Node head = new Node("这是头节点",null);
        //下一个
        head.next = new Node("这是头节点的下一节点",null);
        //下一个的下一个
        head.next.next = new Node("下一下一",null);
        //替换头节点
        head = new Node("替换的头节点", head);
    }


}

链表的结构很简单,就是一个个节点连接在一起,形成一个完整的链条,每个节点包含2部分,数据域,和一个指向下一个节点引用的指针next,具体的更详细的大家可以参考相关资料解释,再说说删除操作,同样需要找到数据所在的位置,然后进行删除,不同的是,删除的时候,链表只需要改变一下前后节点的引用关系即可,就完成了节点的删除,而没有像数组那样触发一次全部数据的移动,从这个描述来看,链表在进行删除的时候,速度比数组快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张航柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值