zoukankan      html  css  js  c++  java
  • 85 容器(十二)——队列与栈:LinkedList的光芒万丈

    队列

    队列就是先进先出的一种数据结构。java提供了一个Queue结构用来表示队列。这个接口中提供了一些方法,用于对队列中的元素进行操作:

    offer(obj):从队尾存入一个元素

    poll():从队首取出一个元素

    peek():(中译:偷窥,一瞥)从队首获取一个元素,但不从队列中删除它

    在集合中,LinkedList就实现了Queue接口,所以可以吧LinkedList作为一个队列使用,相应地任何一个LinkedList对象都具有以上三个方法。

    双向队列

    双向队列即接口Deque(译作:双向队列),它继承自Queue,这意味着它拥有Queue接口的三个方法,除此之外,它还有自己的offerFirst/offerLast、pollFirst/pollLast、peekLast/peekFirst

    栈即先进先出的一种数据结构,把栈想象成一个弹夹,弹夹里有弹簧,我们通过push推入元素,通过pop(译作:弹出)将栈顶的元素弹出来。

    这种结构可以通过双向队列就来实现。在双向队列中,除了以上的6种方法外,还提供了push(obj)与pop()方法来添加与删除元素。用来表示当前的LinkedList正作为一个栈来使用。

    总结

    无论是队列、双向队列和栈,它们都通过LinkedList来实现,所以一个LinkedList对象中,同时拥有push pop poll offer add get等等方法,但它不作为匿名类时能使用哪些方法,全看它的引用类型是什么。

    如是Queue类型,那能使用poll/offer

    如是Deque类型,那就能使用poll/offer/push/pop

    明白了吗?

  • 相关阅读:
    第二阶段冲刺总结01
    第十四周学习进度
    第十三周进度
    意见改进
    BZOJ 2109 航空管制(拓扑排序+贪心)
    BZOJ 2131 圈地计划(最小割+黑白染色)
    BZOJ 2118 墨墨的等式(最短路)
    BZOJ 2157 旅行(树链剖分码农题)
    BZOJ 2141 排队(树状数组套主席树)
    BZOJ 2186 沙拉公主的困惑(预处理逆元+欧拉函数)
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12166801.html
Copyright © 2011-2022 走看看