概述
只允许在一端插入数据操作,在另一端进行删除数据操作的特殊线性表;进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列);队列具有先进先出(FIFO)的特性
Myqueue
基于数组的队列的实现
MyselfArray
链接: DS-数组
Queue
创建queue接口定义方法
package queue.classdemo;
/**
* 实现一个自己创建的队列接口
*
* @author Deevan
*/
public interface Queue<T> {
/**
* 判断队列是否为空
*
* @return boolean
*/
boolean isEmpty();
/**
* 获取队列实际元素个数
*
* @return int
*/
int getSize();
/**
* 入队,在对尾添加元素
*
* @param ele 添加元素内容
*/
void enqueue(T ele);
/**
* 出队并返回内容
*
* @return 对首元素
*/
T dequeue();
/**
* 获取对首元素内容
*
* @return 对首元素
*/
T getFront();
}
MyQueue
package queue.classdemo;
/**
* 定义属于自己的队列
*
* @author Deevan
*/
public class MyQueue<T> implements Queue<T> {
MyselfArray<T> myselfArray;
MyQueue() {
this(10);
}
public MyQueue(int capacity) {
myselfArray = new MyselfArray<>(capacity);
}
@Override
public boolean isEmpty() {
return myselfArray.isEmpty();
}
@Override
public int getSize() {
return myselfArray.getSize();
}
@Override
public void enqueue(T ele) {
myselfArray.addTail(ele);
}
@Override
public T dequeue() {
return myselfArray.removeHead();
}
@Override
public T getFront() {
return myselfArray.getFirstEle();
}
@Override
public String toString() {
return "myQueue=" + myselfArray;
}
}