队列

定义

队列是一种插入在队尾,删除在队头的一种表。用数组实现,下标大的是队尾,下标小的是对头。用链表实现,一个箭头从上一个节点指向下一个节点,没有前向指向(前驱)的是队头,没有后向指向(后继)的是队尾。FIFO,先进先出,在对头的元素是进入队列时间最长的,在队尾的元素是进入队列时间最短的。
队列的基本操作(ADT)
enqueue(T element);
T dequeue();

实现

队列可以用数组或者链表实现。每种操作O(1)运行时间。队列的数组实现中注意循环数组使用。
Java中Queue的实现有LinkedList,(PriorityQueue,LinkedBlockingQueue,ArrayBlockingQueue 这几种是阻塞队列不知道算不算)。

应用

1 用于图论。后面学习。
2 web服务器请求队列。
3 排队论。例如银行柜员的服务。如果只有一个柜员提供服务。要办事的人到达银行符合一定规律。每个人需要服务的时间有一个平均值。人们能容忍的等待时间有个值。怎么才能做到服务好每一位顾客,是银行要考虑的。进一步:如果是多个柜员提供服务,如何确定几个柜员。

此外队列还有双端队列(Double-ended Queue),支持在队头插入、删除,在队尾插入、删除。Dequ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值