之前写过队列和循环队列,这里就不再做多余的赘述了。
队列的链式存储结构实现的关键点是让数据从尾进,从头出。
这样插入和删除的时间复杂度都是O(1)了。
当然队列的链式存储结构还是继承之前的Queue接口,实现LinkedList中的方法
LinkedQueue类代码如下:
public class LinkedQueue<E> implements Queue<E> {
private LinkedList<E> list;
public LinkedQueue() {
list=new LinkedList<E>();
}
@Override
public int getSize() {
return list.getSize();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public void clear() {
list.clear();
}
@Override
public void enqueue(E e) {
list.addLast(e);
}
@Override
public E dequeue() {
return list.removeFirst();
}
@Override
public E getFront() {
return list.getFirst();
}
@Override
public E getRear() {
return list.getLast();
}
}
此时再写一个main函数进行测试即可。
队列的链式存储结构就到这里,经过不断的学习,我会进行补充。