Java数据结构链表篇

1、什么是链表?
● 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。
● 每一个链表都包含多个节点,节点又包含两个部分,一个是数据域(储存节点含有的信息),一个是引用域(储存下一个节点或者上一个节点的地址)。
链表分带头节点和没有头节点的链表

下图为链表在内存的存储图在这里插入图片描述

//单向链表

public class Node {
    public Object data;			//数据域
    public Node next;			//存储下一个节点的地址

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

head -> a1 a1.next-> a2 a2.next-> a3 … a3.next -> aN

Java双向链表和单向链表差不多 每个节点 不仅指向下一个节点的数据 和 指向上一个节点的数据

//双向链表
public class Node {
    public Object data;			//数据域
    public Node next;			//存储下一个节点的地址
    public Node pre;			//存储上一个节点的地址

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

双向链表的缺点就是每次插入或删除一个链结点的时候,要处理四个链结点的引用,而不是两个,也就是上面说过的四条线,这四条线分别为:newNode.previous(新结点的上一个结点)和上一个结点的(我们这里取名为current)current.next(当前结点的下一个结点),还有newNode.next(新结点的下一个结点)以及current.next.previous(当前结点下一个结点的previous域)。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值