队列的顺序存储结构
2015-11-11 16:44
253 查看
队列
1.环形,队头front,队尾rear
2.队头所指的data位置不放值
3.队满条件:(rear+1)%MaxSize == front
4.队空条件:reat == front
5.指针都是逆时针走,+1
![](http://img.blog.csdn.net/20151111164419555)
输出:
front:0 rear:4
0 front:1 rear:4
1 front:2 rear:4
2 front:3 rear:4
3 front:4 rear:4
front:4 rear:3
0 front:0 rear:3
1 front:1 rear:3
2 front:2 rear:3
3 front:3 rear:3
1.环形,队头front,队尾rear
2.队头所指的data位置不放值
3.队满条件:(rear+1)%MaxSize == front
4.队空条件:reat == front
5.指针都是逆时针走,+1
package Queue; import java.util.Scanner; class Queue { final int MaxSize = 5; int data[]; int front; int rear; public Queue() { data = new int[MaxSize]; front = 0; rear = 0; } public boolean QueueEmpty() { if (front == rear) { return true; } else return false; } public void enQueue(int n) { if ((rear + 1) % MaxSize == front) //队满 { System.out.println("Queue full!"); return; } rear = (rear + 1) % MaxSize; data[rear] = n; // 存到队尾+1 } public int deQueue() { if (rear == front) //队空 { System.out.println("Queue empty!"); return -1; } front = (front + 1) % MaxSize; // 队头不存值,值在头+1 int n = data[front]; return n; } } public class MyQueue { public static void main(String args[]) { Scanner cin = new Scanner(System.in); Queue q = new Queue(); for (int i = 0; i < 4; i++) q.enQueue(i); System.out.println("front:" + q.front + " rear:" + q.rear); while (!q.QueueEmpty()) { System.out.print(q.deQueue() + " "); System.out.println("front:" + q.front + " rear:" + q.rear); } System.out.println(); for (int i = 0; i < 4; i++) q.enQueue(i); System.out.println("front:" + q.front + " rear:" + q.rear); while (!q.QueueEmpty()) { System.out.print(q.deQueue() + " "); System.out.println("front:" + q.front + " rear:" + q.rear); } } }
输出:
front:0 rear:4
0 front:1 rear:4
1 front:2 rear:4
2 front:3 rear:4
3 front:4 rear:4
front:4 rear:3
0 front:0 rear:3
1 front:1 rear:3
2 front:2 rear:3
3 front:3 rear:3
相关文章推荐
- BAT解密:互联网技术发展之路(5)- 开发层技术剖析
- 由数字、26个英文字母、下划线或汉字的正则表达式
- js中cookie的使用详细分析
- php apache mysql服务器搭建学习笔记
- ListView 中 getSelectedView() 和 getSelectedItem() 区别
- Spark on Intellij IDEA
- MySQL - 基本操作
- spark on yarn模式:yarn命令杀除当前的application
- Hadoop+Hbase+Zookeeper(独立)环境搭建
- 第四章 Controller接口控制器详解(7 完)——跟着开涛学SpringMVC
- 使用js动态添加组件
- springMvc入门配置Validation
- 使用js动态添加组件
- MySql连接CommunicationsException错误
- BAT解密:互联网技术发展之路(4)- 存储层技术剖析
- 在Windows Server 2008如何安装Subversion
- 常用设计模式(三)——工厂设计模式
- PHP - MySQL数据库
- 网格部件和树型部件查找并定位焦点
- BAT解密:互联网技术发展之路(3)- 牛逼公司的技术架构都是这个范