Java用循环数组实现队列
2017-05-13 17:28
651 查看
需要实现的方法:
定义自己的数组队列:
测试类:
public interface My_queue<T> { void add(T t); T remove(); int size(); boolean isEmpty(); T front(); }
定义自己的数组队列:
public class My_arrayQueue<T> implements My_queue<T>{ private T[] data; private int size; private int front; private int rear; public My_arrayQueue() { data = (T[])new Object[3]; size = 0; front = 0; rear = 0; } @Override public void add(T t) { if(isFull()){ resize(); front = 0; } rear = (front+size)%data.length; data[rear] = t; size++; } @Override public T remove() { if(isEmpty()){ throw new RuntimeException("queue is empty!"); } T tempData = data[front]; data[front] = null; front = (front+1)%data.length; size--; return tempData; } @Override public int size() { return size; } @Override public boolean isEmpty() { return size == 0; } @Override public T front() { if(isEmpty()){ throw new RuntimeException("queue is empty!"); } return data[front]; } public boolean isFull(){ return size == data.length; } public void resize(){ T[] tmp = (T[])new Object[data.length*2]; System.arraycopy(data, 0, tmp, 0, data.length); data = tmp; tmp = null; } }
测试类:
public class arrayTest { public static void main(String[] args){ My_arrayQueue<Integer> arr = new My_arrayQueue<>(); arr.add(1); arr.add(2); arr.add(3); arr.add(4); arr.add(5); arr.add(6); System.out.println(arr.size()+" "+arr.isEmpty()); while(!arr.isEmpty()){ Integer temp = arr.remove(); System.out.println(temp); } } }
相关文章推荐
- java使用数组实现循环队列
- java实现 用数组实现循环队列
- Java实现 数组实现循环队列
- 使用数组实现栈和循环队列(JAVA语言)
- java循环数组实现队列
- 基于Java数组实现循环队列的两种方法小结
- 队列--基于动态循环数组实现(Java)
- (数据结构与算法分析 四)------数组循环队列的实现( Java语言描述)
- java数据结构与算法之双向循环队列的数组实现方法
- 数据结构(java语言描述)-- 队列的循环数组实现
- 循环数组实现队列(java)。
- Java数组实现循环队列的两种方法
- Java数组实现循环队列
- java 利用数组实现循环队列
- Java数组实现循环队列、Java链表实现队列
- java队列的循环数组实现
- 队列--基于简单循环数组实现(Java)
- Java用数组实现循环队列的示例
- Java循环队列(数组实现)
- Java数组实现循环队列