动态数组实现队列这种线性数据结构
队列接口定义:
public interface Queue<E> {
int getSize();
boolean isEmpty();
void enqueue(E e);
E dequeue();
E getFront();
}
实现Queue接口:
1、进队
2、出队
3、查看队首元素
/**
* 使用动态数组实现队列这种线性数据结构
* 在出队列时,时间复杂度为O(n)
* @author f242
* @since V1.0.0
* 2020-03-21 14:48
*/
public class ArrayQueue<E> implements Queue<E> {
Array<E> array;
public ArrayQueue(int capacity){
array = new Array<>(capacity);
}
public ArrayQueue(){
array = new Array<>();
}
@Override
public int getSize(){
return array.getSize();
}
@Override
public boolean isEmpty(){
return array.isEmpty();
}
public int getCapacity(){
return array.getCapacity();
}
@Override
public void enqueue(E e){
array.addLast(e);
}
@Override
public E dequeue(){
return array.removeFirst();
}
@Override
public E getFront(){
return array.getFirst();
}
@Override
public String toString(){
StringBuilder res = new StringBuilder();
res.append("ArrayQueue:");
res.append("front [");
for(int i=0;i<array.getSize();i++){
res.append(array.get(i));
if(i != array.getSize()-1){
res.append(", ");
}
}
res.append("] tail");
return res.toString();
}
}