Java數據結構:隊列的簡單實現

ADT 介紹

1.數據結構

  • 在順序表的基礎上,建立隊列的數據結構
  • 隊列的特點:先進先出(FIFO)

2.操作集合

  • getSize() :獲得隊列中的元素個數;return類型爲int
  • getCapacity() :獲得隊列的容量;return類型爲int
  • isEmpty() :判斷隊列是否爲空;若空,return true,否則,return false
  • enqueue(E element) :入隊操作
  • dequeue() :出隊操作
  • getFront() :獲取隊頭元素

代碼實現

  1. Queue.interface
public interface Queue<E> {
	int getSize();
	boolean isEmpty();
	void enqueue(E element);
	E dequeue();
	E getFront();
}
  1. 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;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章