LinkedList(对队列、、栈、list实现的简单理解)

自己对LinkedList的一些了解
实现了三种数据结构:
借鉴一张图-来自牛客网
在这里插入图片描述

1. List链表的实现:

方式如下:

LinkedList<E> ans = new LinkedList<>();

这里表示双端队列,在插入、删除频繁的时候常用,效率较高,但查找节点比较麻烦,用接口:

在这里插入图片描述
即获得元素、链表长度、添加元素、删除元素、判断为空、排序、判断是否包含某个元素

2. 队列的 实现:

Queue<Integer> ans = new LinkedList<>();

在这里插入图片描述
需要尾部添加元素到队列尾时优先用offer()
查看队头元素优先使用peek()
删除队头元素优先使用poll()
poll()在删除队头的时候还会返回队头
offer和addLast的区别:

  • 在不违背队列的容量限制的情况,往队列中添加一个元素,如果添加成功则返回true。
    如果因为容量限制添加失败了,则抛出IllegalStateException异常
  • 在不违背容量限制的情况,往队列中添加一个元素,如果添加元素成功,返回true,
    如果因为空间限制,无法添加元素则,返回false; 在有容量限制的队列中,这个offer方法优于add方法。 因为抛异常处理更加耗时,offer直接返回false的方式更好

3. 栈的 实现:

LinkedList实现栈是将双向链表的尾部作为栈顶,只在链表尾部也就是栈顶进行操作。

LinkedList<Integer> ans = new LinkedList<Integer>();

这个直接这样写就可以,
在这里插入图片描述
常用接口
pop()在栈顶删除元素,和remove 效果相同
push()在栈顶添加元素
peek()获得栈顶元素,这里的栈顶是队尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大鱼qss

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

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

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

打赏作者

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

抵扣说明:

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

余额充值