ADT 介绍
1.数据结构
- 在顺序表的基础上,建立队列的数据结构
- 队列的特点:先进先出(FIFO)
2.操作集合
- getSize() :获得队列中的元素个数;return类型为int
- getCapacity() :获得队列的容量;return类型为int
- isEmpty() :判断队列是否为空;若空,return true,否则,return false
- enqueue(E element) :入队操作
- dequeue() :出队操作
- getFront() :获取队头元素
代码实现
- Queue.interface
public interface Queue<E> {
int getSize();
boolean isEmpty();
void enqueue(E element);
E dequeue();
E getFront();
}
- ArrayQueue.java
public class ArrayQueue<E> implements Queue<E> {
Array<E> arr;
public ArrayQueue() {
arr = new Array<E>();
}
@Override
public int getSize() {
return arr.getSize();
}
public int getCapacity() {
return arr.getCapacity();
}
@Override
public boolean isEmpty() {
return arr.isEmpty();
}
@Override
public void enqueue(E element) {
arr.addLast(element);
}
@Override
public E dequeue() {
return arr.removeFirst();
}
@Override
public E getFront() {
return arr.get(0);
}
@Override
public String toString() {
String s = new String();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("size:"+getSize()+'\n');
stringBuilder.append("capacity:"+getCapacity()+'\n');
stringBuilder.append("front");
stringBuilder.append('[');
for(int i = 0; i < getSize(); i++) {
stringBuilder.append(arr.get(i));
if(i != getSize() - 1)
stringBuilder.append(',');
}
stringBuilder.append(']');
stringBuilder.append("tail");
s = stringBuilder.toString();
return s;
}
}