java中的数据结构——链表

本文介绍了Java中的链表数据结构,包括链表的特点、内存分配以及与数组的区别。链表由链节点(Link对象)组成,每个节点包含数据和指向下一个节点的引用。讨论了链表在文件系统、哈希表和邻接表等场景的应用,以及单链表和双向链表的操作,如插入、删除和遍历。此外,还提供了链表的效率分析,并通过实战展示了链表的反转和删除重复元素的实现方法。
摘要由CSDN通过智能技术生成

链表

链表也是线性数据结构,与数组相比,在内存分配、内部结构及数据插入和删除的操作上均有不同。 链表用途广泛,适用于许多通用的数据库,也可以取代数组,作为其他存储结构的基础。 在链表中,每个数据项都被包含在链节点中,一个链节点是某个类的对象,这个类叫做Link。因为一个 链表中有许多类似的链节点,所以要用一个不同于链表的类来表达链节点。每个Link对象都包含一个对 下一个链节点引用的字段,即next,但是链表本身的对象中有一个字段指向对第一个链节点的引用。
引用的区别
在java中,Link对象并没有真正包含另外一个Link对象,类型为Link的next字段仅仅是对另外一个Link 对象的引用,而不是一个对象。一个引用是一个对某个对象的参照数值,它是一个计算机内存中的对象 地址,并不需要知道它的具体值,在给定的计算机系统中,所有的引用,不管指向谁,大小都是一样 的,因此对于编译器来说,知道这个字段的大小并由此构造出整个Link对象,是没有问题的。在java 中,这些基本类型的字段不是引用,而是实实在在的数值。

链表的每个节点包含着数据和指向后续节点的指针,还包括一个头指针,它指向链表的第一个元素,但 当链表为空时,它指向Null或无具体内容。 链表一般用于实现文件系统,哈希表和邻接表。
单链表的操作: 在链表头插入一个数据项; 在链表头删除一个数据项; 遍历链表显示它的内容。
双向链表 双向链表新增了一个特性,即对最后一个链节点的引用,就像对第一个链节点的引用一样,对最后一个 链节点的引用允许像在表头

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值