1 前言 与普通队列相比,阻塞队列另外支持两个附加操作,这两个附加的操作支持阻塞的插入和移除方法。 ①支持阻塞的插入方法:当队列满时,队列会阻塞插入元素的线程,直到队列不满。 ②支持阻塞的移除方法:在队列为空时,获取元素的线程会等待队列变为非空。 一般的阻塞队列相比,只能在“尾部入队、在头部出队”, ...
分类:
数据库 时间:
2020-04-22 13:17:35
阅读次数:
67
今天讲一下队列,用到一个python自带的库,queue 队列的三种方法有: 1、FIFO先入先出队列(Queue) 2、LIFO后入先出队列(LifoQueue) 3、优先级队列(PriorityQueue) 先讲一下Queue中的几个方法 # 三种 FIFO LIFO Priority # 创建 ...
分类:
编程语言 时间:
2020-04-19 00:54:35
阅读次数:
60
题目描述: 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 返回其层次遍历结果: 示例:二叉树:[3,9,20,null,null,15,7], 思想: 访问过程中,只需要将同一层中的节点同时入队列即可。在将该queue中所有元素出队列的同时,将下一层的 ...
分类:
其他好文 时间:
2020-04-18 15:44:30
阅读次数:
63
列表 一、列表 List 我们又经常听到 数据结构,其实这只是更宏观的统称,表示存放数据的队列。 列表 :存放数据,数据按顺序排列,可以依次入队和出队,有序号关系,可以取出某序号的数据。先进先出的 和先进后出的 都是列表。大家也经常听说一种叫 的数据结构,表示具有相同特性的数据元素的有限序列,实际上 ...
分类:
编程语言 时间:
2020-04-18 13:27:32
阅读次数:
49
Java-五种线程池,四种拒绝策略,三种阻塞队列 三种阻塞队列: BlockingQueue<Runnable> workQueue = null; workQueue = new ArrayBlockingQueue<>(5);//基于数组的先进先出队列,有界 workQueue = new Li ...
分类:
编程语言 时间:
2020-04-16 19:32:41
阅读次数:
70
思路分析: 1.记录数组的队首和队尾的位置,当front 和tail指在一起的时候数组为空。 2.出队的时候front指针往后挪一位。这样出队操作就由数组队列的 O(N) 变成 循环队列的O(1)了。 让数组循环利用起来: 当前索引+1 再百分之我们数组的长度 比如我们到了最后一位7, 7+1 = ...
分类:
编程语言 时间:
2020-04-15 21:29:42
阅读次数:
134
2-1若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的对象出队,则单向链表的状态是: 2->3->4 2-7若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储 ...
分类:
其他好文 时间:
2020-04-13 23:15:50
阅读次数:
327
[TOC] 6.用两个栈实现队列 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 考虑栈1用于存储元素,出队时,将栈1的元素压入栈2,此时栈2中元素从栈顶到底即其入队的顺序,然后出栈。若出队时栈2非空,则直接从栈2弹出元素。 1、根据栈2是否空将栈1元素全部压入 ...
分类:
其他好文 时间:
2020-04-11 12:45:46
阅读次数:
56
在此之前,已经了解过顺序表和链表了,那么现在要了解的栈和队列,从本质上来说是基于上述俩个的,栈讲究“”后进先出”,而队列与之不同,要求“先进先出”,对于栈来说,根据规则,我们了解到,栈的“入栈”即为“尾插”,栈的出栈也要找到“尾数据”,考虑到实用性,我们的“栈“是基于顺序表完成的。这里就不细细展开了,而对于本次要讲的“队列”,根据使用规则,会发现,入队列类似“尾插”,出队列是“首”,因此,为了效率
分类:
其他好文 时间:
2020-04-08 13:40:07
阅读次数:
104
什么是优先队列? 我们在常见的线性结构中,已经知道什么是普通队列了,普通队列就是一种“先进先出,后进后出”的数据结构,即普通队列的出队顺序和入队顺序是一样的,但我们的优先队列,它的出队顺序和入队顺序无关,它的出队顺序是和优先级相关的,当然这个优先级我们可以自己定义。 为什么使用优先队列? 举一个生活 ...
分类:
其他好文 时间:
2020-04-06 09:38:48
阅读次数:
63