借助Java语言用数组和链表实现队列队列 (Queue)一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。Par...
分类:
编程语言 时间:
2014-11-15 12:47:43
阅读次数:
241
为简化多线程应用的开发,IOS提供了GCD来实现多线程。它的核心就是队列与任务,任务在队列中始终以FIFO的顺序来处理。但由于任务的执行时间不同,因此先处理的任务不一定先结束。
使用GCD实现多线程只需遵守两个步骤即可:1.创建队列2.将任务提交给队列。队列分为串行队列与并行队列。当我们向队列中提交任务时就涉及到两种方式:异步提交任务(dispatch_async)、同步提交任务...
分类:
其他好文 时间:
2014-11-11 14:25:54
阅读次数:
238
什么是队列?队列(Queue)也是一种运算受限的线性表。它仅仅同意在表的一端进行插入,而在还有一端进行删除。同意删除的一端称为队头(front),同意插入的一端称为队尾(rear)。FIFO原则队列具有先进先出原则,与栈的先进后出形成对照。为什么设计循环队列?队列的顺序存储结构称为顺序队列,顺序队列...
分类:
其他好文 时间:
2014-11-11 14:06:50
阅读次数:
162
题意:给你n-1条边,然后没两个节点的距离按照递增的顺序,求出前k项的和。官方题解:把所有边(u,v) 以及(v,u)放入一个队列,队列每弹出一个元素(u,v),对于所有与u相邻的点w,如果w!=v,就把(w,u)入队。这样就能一个一个生成前K小的距离。 注意到每条边实际上会入队两次,只要把K翻倍且...
分类:
其他好文 时间:
2014-11-10 19:31:48
阅读次数:
156
队列是操作受限的线性表,只允许在队尾插入元素,在队头删除元素。对于链队列结构,为了便于插入元素,设立了队尾指针,这样插入元素的操作便与队列长度无关。...
分类:
其他好文 时间:
2014-11-10 15:33:54
阅读次数:
306
http://acm.hdu.edu.cn/showproblem.php?pid=5102补题.题意:给你n-1条边,然后没两个节点的距离按照递增的顺序,求出前k项的和。思路:把所有边(u,v) 以及(v,u)放入一个队列,队列每弹出一个元素(u,v),对于所有与u相邻的点w,如果w!=v,就把(...
分类:
其他好文 时间:
2014-11-10 11:41:19
阅读次数:
192
相比较NSOperation和NSThread,GCD提供了更简单的操作实现多线程,多线程下也无需创建自动释放池,而且GCD开发只有两个步骤1 创建队列2 提交任务到队列队列GCD创建的队列有两种,一种是串行队列,一种是并行队列,在串行队列中每次只执行一个任务,依次执行下去,而在并行队列中每次可以同...
分类:
移动开发 时间:
2014-11-09 16:33:50
阅读次数:
276
本文有关栈的介绍部分参考自网站数据结构。 1. 队列 1.1 队列的定义 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列...
分类:
编程语言 时间:
2014-11-04 22:23:26
阅读次数:
374
一. 阻塞队列和普通队列:
队列是一种基本的数据类型,其典型特征是先进先出。
阻塞队列和普通队列的区别在于:
当队列为空时,从队列中获取元素的线程会被阻塞,直到其他的线程往空的队列里插入新的元素;
当队列是满的时,往队列里添加元素的操作会被阻塞,直到其他的线程从队列移除一个或多个元素;...
分类:
其他好文 时间:
2014-10-31 10:11:13
阅读次数:
211
题目:找到不小于给定数n的,仅以2,3为因数组成的数字。
分析:数论,贪心,分治。
利用两根指针,分别代表乘2,与乘3的队列,队列为至今生成的数字,初始为{1};
然后,每取两个指针对应元素*2和*3的值中最小的即为未找到的数字中最小的;
注意,可能生成重复数据,不要存进去(重复数据,一定连续产生)。
说明:打表计算...
分类:
其他好文 时间:
2014-10-25 15:55:11
阅读次数:
171