数据结构链表

数据结构链表

链表是数据结构中的一种。链表的也是为了弥补添加删除数据更加方便吧(相对于数组来说)先看链表的结构图;

在这里插入图片描述
链表
这里因为是引用类型所以存储的都是地址值。head是头指针。第二个元素的地址值就是head.next不妨也知道了第N个用循环语句就可以知道第n个元素的数据。有人会觉得链表的查询确实会比数组更加复杂确实如此。数组只需要arr[n-1]即可查出第N个元素。这里的链表查询的时间复杂度会比数组的时间复杂度大,不过也是因为链表的这种存储结构内存的占用也会比数组大。

插入与删除

在这里插入图片描述

替换
这里我把插入和删除合并在了一起。如图所指,把head.next=temp,temp.next=head.next.next;如此就可以把temp元素插入进去替换掉上面的元素。至于上面的元素会垃圾自动回收。如此我们便完成了插入,删除甚至是替换掉链表中的某一元素;

判断链表里面是否有环

这个问题是数据结构里面经常会看见的一个问题判断一个链表里面是否有环,该如何判断;哈希,快慢指针。这三个方法都可以判断。最开始我使用的是暴力直接去判断。从链表的head头指针去走一直走如果这个链表有环便会陷入死循环的不到结果。如果这个链表有输出结果在链表的最后指向的一定是Null;

在这里插入图片描述

环形链表
快慢指针实际上就是定义两个指针head1,head2,慢指针走一格快指针走两格。head1=head.next;head2=head.next.next;如果head1和head2相遇证明有环。没相遇head1直到null证明没有环。其实不管是链表还是数组,数据结构在Java中的应用都很多。Java的类和方法大多也都和数据结构有关。还需要我们去好好的学习数据结构,有人说得好数据结构你或许用不上,但是你必须会。我也刚开始学习还希望在以后的学习中大家多多关照。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值