使用数组实现的简单队列结构
2015-09-24 17:52
519 查看
package com.hebtu.java.vector; /** * 使用数组实现的 队列 * @author Xmh * */ public class MyQueue { private int maxSize; //队列的大小 private long[] queue; // 保存 long 型的数组 private int front; // 队头下标 private int rear; // 队尾下标 private int nElement; // 队列中当前元素的个数 /** * 初始化队列 * @param size */ public MyQueue(int size) { maxSize = size; queue = new long[maxSize]; front = 0; rear = -1; nElement = 0; } /** * 向队列中插入数据 */ public void insert(long a){ if(rear ==(maxSize-1)){ //如果队列满了 rear = -1; } queue[rear+1] = a; rear = rear +1; nElement = nElement + 1; } /** * 出队列 * @return */ public long remove(){ long a = queue[front]; front = front + 1; if(front == maxSize){ front = 0; } nElement = nElement -1; return a; } /** * 取队头元素 * @return */ public long peekFront(){ long a = queue[front]; return a; } /** * 取队尾元素 * @return */ public long peekRear(){ return queue[nElement]; } /** * 判断队列是否为空 * @return */ public boolean isEmpty(){ if(nElement == 0){ return true; } return false; } /** * 判断队列是否满了 * @return */ public boolean isFull(){ if(nElement==maxSize){ return true; } return false; } /** * 返回队列中元素的个数 * @return */ public int size(){ return nElement; } public void display(){ for(long a:queue){ System.out.println(a); } } }
package com.hebtu.java.vector; public class MyQueueTest { public static void main(String[] args) { int size = 10; MyQueue queue = new MyQueue(size); queue.insert(2); queue.insert(4); queue.insert(6); queue.insert(8); queue.insert(10); queue.insert(9); queue.insert(7); queue.insert(5); queue.insert(3); queue.insert(1); //System.out.println(queue.size()); //queue.display(); while(!queue.isEmpty()){ long a = queue.remove(); System.out.print(a); System.out.print(" "); } } }
相关文章推荐
- 关于Hashcode的作用
- UML视频第一部分总结
- android selector 控件
- 面试---i++在两个线程分别执行100次,最大值和最小值分别多少
- sql server使用组合索引需要注意的地方
- HDU 3037(Lucas定理)
- JAVA中常用的正则的一些案例分析
- avaScript 中 typeof 和 instanceof
- 敏捷开发之XP
- 顺时针打印数组
- Java的四种引用,强弱软虚,用到的场景
- 读书笔记:MySQL数据库 数据类型优化二 用整形Int 存储 IP地址
- linux 查看网卡流量六种方法
- 提交表单之前,加入确认提示
- centos7为yum添加源
- nodejs如何请求路由,http和url模块
- UI - Delegate模式
- easyui表单验证easyui-validatebox
- [Spring]Spring AOP学习笔记(4)--Spring 事务
- JAVA中注解的简单使用