双端队列
双端队列
贲大侠 发表于4个月前
双端队列
  • 发表于 4个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: 日常学习

        最近在看BlockingDeque的api文档,里面提到了双端队列,看完有点懵逼,于是乎学习了一番。

         在说双端之前先简单说下栈和队列。栈的两端分别是栈顶和栈底,其限制是只允许在一段进行插入和删除的操作,这一端就是栈顶,栈插入元素的顺序是从栈顶压入栈底,删除则是从栈顶开始删除,也就是说栈的出入规则是先进后出,先进者靠栈底近,后进者靠栈顶近,出栈的时候是从栈顶开始的,用大白话说先进栈的元素要比后进入的出栈要晚,这个规则就是“先进后出”。  

                

                            

        在说下队列,队列就简单多了,队列的操作是由两端进行的,一端插入,这是队尾,一端删除,这是队首。队列的出入规则是“先进先出”。

                                                    

        双端队列是一种具有栈和队列性质的数据结构,插入和删除是在两端进行。这些方法可以叫作insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构,在容器类库中有时会用双端队列来提供栈和队列两种功能。

    

共有 人打赏支持
粉丝 0
博文 10
码字总数 10798
×
贲大侠
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: