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;
}
}