java队列和优先级队列
来源:互联网 发布:淘宝宝贝标题违规规则 编辑:程序博客网 时间:2024/06/05 04:18
一、队列
package queue;import java.util.Scanner;/** * 队列的基本模型:基于数组,front删除,rear插入,front查看 * @author USER * */class Queue{private int maxSize;private int[] queArray;private int front;private int rear;private int p;public Queue(int size) {maxSize = size;queArray = new int[maxSize];front = 0;rear = -1;p = 0;}public void insert(int value) {if (rear == maxSize -1) {rear = -1;}queArray[++rear] = value;p++;}public int delete() {if (front == maxSize) {front = 0;}p--;return queArray[front++];}public int peek() {return queArray[front];}public boolean isEmpty() {return p == 0;}public boolean isFull() {return p == maxSize;}public int size() {return p;}}public class QueueApp {public static void main(String[] args) {System.out.print("输入5个整数:");Scanner in = new Scanner(System.in);int[] a = new int[5];for (int i = 0; i < a.length; i++) {a[i] = in.nextInt();}Queue queue = new Queue(a.length);for (int i = 0; i < a.length; i++) {queue.insert(a[i]);}queue.delete();queue.delete();while (!queue.isEmpty()) {System.out.print(queue.delete()+" ");}}}
二、优先级队列
package queue;/** * 优先级队列:队头删除,队尾插入,队头查看 * 基于数组循序排序,[0,maxSize-1]下标小的在队尾,下标大的在队头,元素个数p在[1,maxSize] * @author USER * */class PriorityQueue{private int maxSize;private int[] queArray;private int p;//队列的元素个数public PriorityQueue(int size) {maxSize = size;queArray = new int[maxSize];p = 0;}//插入public void insert(int value) {int i;if (p == 0) {queArray[p++] = value;}else {for (i = p-1; i >=0; i--) {if (value > queArray[i]) {queArray[i+1] = queArray[i];//插入的较大,则上移一个}else {break;}}queArray[i+1] = value;//插入的是较小值p++;}}//删除public int delete() {return queArray[--p];}public int peek() {return queArray[p-1];}public boolean isEmpty() {return p == 0;}public boolean isFull() {return p == maxSize;}}public class PriorityQueueApp {public static void main(String[] args) {PriorityQueue priorityQueue = new PriorityQueue(5);priorityQueue.insert(40);priorityQueue.insert(20);priorityQueue.insert(50);priorityQueue.insert(10);priorityQueue.insert(30);while (!priorityQueue.isEmpty()) {int output = priorityQueue.delete();System.out.print(output+" ");//10 20 30 40 50}}}
0 0
- java队列和优先级队列
- 单向队列和优先级队列
- Java 普通队列 和 优先级队列 的使用
- 优先级队列-Java描述
- Java优先级队列实现
- java 优先级队列
- Java优先级队列PriorityQueue
- Java优先级队列PriotyQueue
- java优先级队列
- java实现优先级队列
- Java优先级队列
- PriorityQueue 优先级队列【java】
- 堆和优先级队列
- 堆和优先级队列
- Java 模拟队列(一般队列、双端队列、优先级队列)
- java之_队列(PriorityQueue 优先级队列)
- java集合——队列和双端队列+优先级队列
- 第八章 队列和优先级队列
- 分享一个Android左右侧滑的效果实现 sliding layout
- HDU 4951 Multiplication table
- 关于星路缓存游戏的问题
- IOS常用正则表达式
- ExportData4Mssql
- java队列和优先级队列
- winusb资料汇总
- HDU4939:Stupid Tower Defense(DP)
- servlet/filter/listener/interceptor区别与联系
- UVa 11806 - Cheerleaders (组合数学 容斥原理)
- Android修炼之道——Theme自定义ActionBar
- gsoap高性能服务器的开发
- Nginx进程模型
- 黑马程序员_面向对象2