public class QueueDemo { private int maxSize; long[] queueArray; // 队列的头,实际是数组的尾 header; 队列的尾,实际是数组的头 footer; nElems; public QueueDemo( size){ maxSize = size; queueArray = new [maxSize]; header = 0; footer = -1; nElems = 0; } 插入队列,从队尾插入 void insert( element){ if(footer == (maxSize - 1)){ footer = -1; } queueArray[++footer] = element; nElems++ 出队列,即取出数组尾 remove(){ long temp = queueArray[header]; queueArray[header] = 0; if(++header == maxSize){ header = 0; } nElems--return temp; } 取出队列头元素 getHeader(){ queueArray[header]; } 取出队列数组 [] getArray(){ queueArray; } }
队列是先进先出,可以想象成火车进隧道
优先级队列:
import java.util.Arrays; /** * 优先级数组 * * @author Orlion * @create 2015-09-12 */ PriorityQDemo { [] priorityqArray; footer; public PriorityQDemo( size; priorityqArray = 插入优先级数组 int i = footer; while(i > 0 && priorityqArray[i] > element){ priorityqArray[i + 1] = priorityqArray[i]; i--; } priorityqArray[i+1] = element; footer++ 出队列 priorityqArray[header]; priorityqArray[header] = 0; } 打印队列 void getPriorityq(){ System.out.print(Arrays.toString(priorityqArray)); } }
可以理解成有一定顺序的队列,也是先进先出
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。