文档章节

双端队列

贲大侠
 贲大侠
发布于 2017/07/25 15:41
字数 398
阅读 78
收藏 0

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

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

                

                            

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

                                                    

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

    

© 著作权归作者所有

贲大侠
粉丝 1
博文 18
码字总数 17703
作品 0
海淀
程序员
Java的Queue集合

Queue用于模拟队列这种数据结构,队列通常是指“先进先出”FIFO的容器,队列的头部保存在队列中存放时间最长的元素,队列的尾部保存在队列中存放时间最短的元素。Queue接口中定义了如下几个方...

西红柿的眼泪
2016/07/14
31
0
STL 一些常用的STL函数(持续更新

先说一下 一边要用到算法的东西一般要加#include头文件 一、栈和队列 1 栈 :一种线性表 特点 后进先出 头文件 #include 声明 stack< 类型 > sk(变量); 注意 这里的类型 如果是char只能是单...

轻封细解
07/25
0
0
【死磕Java并发】-----J.U.C之阻塞队列:LinkedBlockingDeque

原文出处http://cmsblogs.com/ 『chenssy』 前面的BlockingQueue都是单向的FIFO队列,而LinkedBlockingDeque则是一个由链表组成的双向阻塞队列,双向队列就意味着可以从对头、对尾两端插入和...

chenssy
2017/10/03
0
0
【死磕Java并发】—–J.U.C之阻塞队列:LinkedBlockingDeque

原文出处http://cmsblogs.com/ 『chenssy』 前面的BlockingQueue都是单向的FIFO队列,而LinkedBlockingDeque则是一个由链表组成的双向阻塞队列,双向队列就意味着可以从对头、对尾两端插入和...

chenssy
2017/10/03
0
0
数据结构与算法12-栈和队列-循环队列-优先级队列

无数据项计数的循环队列算法: 在判满和判空需要注意,由于是循环队列,所以有可能rear和front指针指向同一位置,但是出现的情况有很多,造成可空可满的情况,所以数据项要比存储空间少一,这...

沉迷于编程的小菜菜
07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
21
5
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部