先进先出描述了最典型的队列.队列规则是值在给定一组队列中的元素的情况下,确定下一个弹出队列的元素的规则,先进先出声明的是下一个元素应该是等待时间最长的元素 优先级队列声明下一个弹出的元素是最需要的元素(具有最高优先级),当在PriorityQueue调用offer()方法插入一个对象时,这个对象就会 ...
分类:
编程语言 时间:
2019-01-17 21:22:14
阅读次数:
192
队列是一种先进先出的数据结构(First In First Out, FIFO)。本文将以数组分别实现数组队列和循环队列两种底层的数据结构。 1. 队列接口 2.数组队列的实现 1 /** 2 * @author 阿遠 3 * Date: 2019/1/13 4 * Time: 19:29 5 */ ...
分类:
其他好文 时间:
2019-01-15 12:07:28
阅读次数:
158
恢复内容开始 1. 什么是队列、栈、链表? 队列:队列即按照数据到达的顺序进行排队,每次新插入一个节点,将其插到队尾;每次只有对头才能出队列。是一种“先进先出”(FIFO)的数据结构。 栈:栈是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出(FILO)的原则存储数据,先进入的数据被压入 ...
分类:
编程语言 时间:
2019-01-15 12:04:36
阅读次数:
257
跟上次那道列队不一样,但都是九条可怜。。。(吉老师太强了) 在主席树上统计答案,因为值域只有 $10^6$ 甚至不用离散化。。。 $Code\ Below:$ cpp include define int long long using namespace std; const int maxn=5 ...
分类:
Web程序 时间:
2019-01-06 15:00:46
阅读次数:
181
前言: 常用: a)Counter: 计数器,用于统计元素的数量 b)OrderDict:有序字典 c)defaultdict:值带有默认类型的字典 d)namedtuple:可命名元组,通过名字来访问元组元素 e)deque :双向队列,队列头尾都可以放,也都可以取(与单向队列对比,单向队列只能一 ...
分类:
编程语言 时间:
2019-01-04 22:38:06
阅读次数:
337
数据结构相关知识 一、什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。 比如:列表、集合与字典等都是一种数据结构。 “程序=数据结构+算法” 二、数据结构的分类 数据结构按照其 ...
分类:
编程语言 时间:
2018-12-27 03:19:05
阅读次数:
233
支持生产阻塞的线程池, 使用了阻塞生产者的方式. 把队列设为有限队列.队列满了,调用构造时传入的RejectedExecutionHandler去拒绝任务的处理 RejectedExecutionHandler中继续往有界队列中put(阻塞)来添加元素. http://ifeve.com/block ...
分类:
编程语言 时间:
2018-12-22 13:50:45
阅读次数:
177
带着几个问题进入源码分析: 线程池是什么时候创建线程的? 任务runnable task是先放到core到maxThread之间的线程,还是先放到队列? 队列中的任务是什么时候取出来的? 什么时候会触发reject策略? core到maxThread之间的线程什么时候会die? task抛出异常,线 ...
分类:
编程语言 时间:
2018-12-15 11:48:45
阅读次数:
348
进程间通信-Queue Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。 1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理: 运行结果: ...
分类:
系统相关 时间:
2018-12-14 19:32:41
阅读次数:
197
什么是队列 队列是一种先进先出,后进后出的线性表. 同栈相反,队列一头进,而另外一头出.我们同样可以通过画图来理解队列. 如何去实现或模拟队列的操作 我们可以用head和tail表示,head表示指向对头的指针,tail表示指向队尾的指针. 我们设q为模拟队列的数组,那么对于5个元素q={2,5,7 ...
分类:
其他好文 时间:
2018-12-14 17:35:43
阅读次数:
197