栈是先进后出,队列是先进后出,这里讨论一下两种数据结构之间的相互实现。 一.用两个栈实现队列 我们用一个栈来实现队列的进队操作(栈A),用另一个栈来实现队列的出队操作(栈B)。 1.入队列: 把元素放进栈A即可。假如栈A已满并且栈B为空,可以先把栈A中的所有元素先弹出并放入栈B中;假如栈B不为空,则 ...
分类:
其他好文 时间:
2017-12-31 14:11:22
阅读次数:
149
在数据结构中,栈和队列是两种重要的线性数据结构。它们的主要不同在于:栈中存储的元素,是先进后出;队列中存储的元素是先进先出。我们接下来通过LinkedList集合来演示栈和队列的操作。 import java.util.LinkedList; /** * 用LinkedList集合演示栈和队列操作 ...
分类:
其他好文 时间:
2017-12-28 19:48:59
阅读次数:
192
最近在做数据对接的工作,用到了activemq,我需要从activemq中接收消息并处理,但是我处理数据的步骤稍微复杂,渐渐的消息队列中堆的数据越来越多,就想到了我这边多开几个线程来处理消息。 可是会发现,服务器占用的网络带宽变的异常的高,仔细分析发现,mq入队时并没有异常高的网络流量,仅仅在出队时 ...
分类:
编程语言 时间:
2017-12-23 16:01:46
阅读次数:
270
栈区是先进后出,队列是先进先出。 栈区就相当于玻璃杯,往玻璃杯里放奥利奥,第一块放入的奥利奥,肯定是最后一个拿出来。 队列就相当于掉了底的玻璃杯,最先放入的,必定最先掉出来。 网上有个更绝的比喻:队列是吃多了拉,栈区是吃多了吐。 这里解析的是栈区和堆区的内存问题,说到了栈区自然引出队列,捎带提一笔。 ...
分类:
其他好文 时间:
2017-12-21 19:32:36
阅读次数:
155
学习内容: ExecutorService线程池的应用... 1.如何创建线程池... 2.调用线程池的方法,获取线程执行完毕后的结果... 3.关闭线程... 首先我们先了解一下到底什么是线程池,只有了解了其中的道理,我们才能够进行应用...java.util.concurrent.Executo ...
分类:
其他好文 时间:
2017-12-20 13:58:54
阅读次数:
220
TonyY 有幸进入银行实习, 作为一名柜台职员, 他的任务就是在正确的时间为正确的人服务。每个来银行的人, 都有一个 vip 值, TonyY 需要做到每服务完一个客户后,找出队列中 vip 值最高的人为他服务,之后被服务的人离开队列。在他为客户服务的过程中,随时都会有新的客户来排队。现在他想知道 ...
分类:
其他好文 时间:
2017-12-17 00:12:46
阅读次数:
200
队列的数据项都是队列尾插入,然后移向队列头,并从队列头删除或者获取。 队列需要一个头指针(front)和尾指针(rear),头指针会随着出队变动,rear会随着入队变动 两种常用队列 :线性队列,循环队列。 线性队列和循环队列的区别是:线性队列会产生假溢出,即头指针和尾指针都到了size大小 数组实 ...
分类:
编程语言 时间:
2017-11-26 22:59:14
阅读次数:
334
#include #define OK 1 #define ERROR 0 using namespace std; typedef int Status; typedef int ElemType; typedef struct QNode { ElemType data; struct QNod... ...
分类:
其他好文 时间:
2017-11-26 15:01:21
阅读次数:
95
全部代码 基本思想:栈1用来添加(直接添加即可),栈2用来删除(先判断栈2是否是空,如果是空,把栈1的元素弹出,添加到栈2中,然后弹出栈2的栈顶元素,作为出队的元素;如果栈2非空,直接弹出栈2的栈顶元素,作为出队的元素即可)。 ...
分类:
其他好文 时间:
2017-11-18 16:01:28
阅读次数:
158
1、LinkedBlockingQueue:基于链接节点的可选限定的blocking queue 。 这个队列排列元素FIFO(先进先出)。 队列的头部是队列中最长的元素。 队列的尾部是队列中最短时间的元素。 新元素插入队列的尾部,队列检索操作获取队列头部的元素。 链接队列通常具有比基于阵列的队列更 ...
分类:
数据库 时间:
2017-11-15 22:09:44
阅读次数:
186