数据结构与算法——线性表-链表

链表

链表是Java面向对象中常用的语法,它是通过引用把节点对象联系起来,它与数组不同,数组是一个连续的空间,而链表不是,它可以放在任何地方,只要你存有数据的引用就可以访问该数据,所以链表包括俩个空间一个数据域和一个指针域:
数据域:储存数据的地方
指针域:存储下一个节点地址的地方
在这里插入图片描述
话不多说,我们还是用代码来解释链表:

建立一个链表

package List.Link;

public class LinkedList {
    
}

创建一个Node类,封装指针域和数据域

public class Node {
    private Object data;//数据域
    private Node next;//指针域
    

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
        this.next = next;
    }
}

在这里我们用Object来储存数据,因为你不知道你要存储的数据是什么类型,我们也顺便介绍一下Object类:
Object类是所有类的公用父类,如果一个类没有明确是继承某个类,则该类默认是继承Object类,也可以说Object类可以引用任何数据类。

再写一个主函数

public class MainClass {
    public static void main(String[] args) {
//
    }
}

开始储存数据

由于我们的数据是Object类型可以储存任何数据,所以我在这里就用不同类型的数据

public class MainClass {
    public static void main(String[] args) {
        Node head = new Node();
        head.setData("叶修");

        Node a1 = new Node();
        a1.setData(343);
        

        Node a2 = new Node();
        a2.setData(369.564);

大家有没有发现,我在这里只是了数据域却没有用指针域
在这里插入图片描述
这样的话就不是一个链表了
我们应该这样

public class MainClass {
    public static void main(String[] args) {
        Node head = new Node();
        head.setData("叶修");

        Node a1 = new Node();
        a1.setData(343);
        head.setNext(a1);

        Node a2 = new Node();
        a2.setData(369.564);
        a1.setNext(a2);

将a1的地址赋head(首地址)所引用的指针域,a2同理
在这里插入图片描述
这就是最简单的一个链表,非常的简单,不过这是一个基础,我们可以在链表中定义许多方法,比如说增删改查,不过这个我们下次再说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值