Java用数组实现顺序队列
2016-06-13 20:07
375 查看
public class Queue { private static final int MAX_SIZE = 100; private Object[] queue; private int length; //队列初始化长度 private int front; //Head pointers private int rear; //The tail pointer //Initialize the queue private void init(){ queue = new Object[this.length + 1]; front = rear = 0; } //Team public void put(Object object)throws Exception{ if (isFull()) { throw new Exception("team faild,queue is empty!"); } queue[rear] = object; rear = (rear + 1) % queue.length; } //Out team public Object get() throws Exception{ if (isEmpey()) { throw new Exception("Out team faild,queue is empty"); } Object object = queue[front]; queue[front] = null; //Releasiong objects. front = (front + 1) % queue.length; return object; } //Clear team public void clear(){ queue = null; queue = new Object[this.length]; } //get the current queue size public int size(){ return (rear - front + queue.length) % queue.length; } //Determines whether the queue is empty private boolean isEmpey() { // TODO Auto-generated method stub return front == rear; } /** * Determines wheter the queue is full * @return */ private boolean isFull() { // TODO Auto-generated method stub return (rear + 1) % queue.length == front; } public Queue(int length){ this.length = length; init(); } public Queue(){ this.length = MAX_SIZE; init(); } public static void main(String []args){ System.out.println("ceshi"); Queue queue = new Queue(5); char[] data = new char[]{'凔','海','一','声','笑'}; try { for (int i = 0; i < data.length; i++) { System.err.println("Team data:" + data[i]); queue.put(data[i]); } System.out.println("Team size:" + queue.size()); System.out.println("-------------------------"); while (!queue.isEmpey()) { System.out.println("Out data:" + queue.get()); } System.err.println("Team of know? \t" + queue.isEmpey()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序