双向顺序队列ArrayDeque和双向链式队列LinkedList, JDK已经包含,在此略.ArrayDeque包括顺序栈和顺序队列,LinkedList包含链式栈和链式队列.ArrayDeque和LinkedList都是线程不安全的.PriorityQueue优先队列也在JDK。
包朗; 进口java.io.Serializable; 进口java.util.Arrays;/* * * @ClassName: ArrayQueue * @Description:顺序队列 * @date 2014年1月20日下午3:46:19 * @param & lt; T> */公开课ArrayQueue实现了Serializable {/* * * @Fields serialVersionUID:待办事项 */私有静态最终长serialVersionUID=7333344126529379197 l; 私人int DEFAULT_SIZE=10; 私人int能力;//保存数组的长度 私有对象[]elementData;//定义一个数组用于保存顺序队列的元素 私人int面前=0;//队头 私人int后方=0;//队尾//以默认数组长度创建空顺序队列 公共ArrayQueue () {=DEFAULT_SIZE能力; elementData=https://www.yisu.com/zixun/new对象(能力); }//以一个初始化元素来创建顺序队列 公共ArrayQueue (T元素){ 这(); elementData[0]=元素; 后+ +; } 公共ArrayQueue (int initSize) { elementData=新对象(initSize); }/* * *以指定长度的数组来创建顺序队列 * @param元素指定顺序队列中第一个元素 * @param initSize指定顺序队列底层数组的长度 */公共ArrayQueue (T元素,int initSize) { 这一点。=initSize能力; elementData=新对象(能力); elementData[0]=元素; 后+ +; }/* * * @Title:大小 * @Description:获取顺序队列的大小 * @return */公共int大小(){ 返回后-前; }/* * * @Title:提供 * @Description:入队 * @param元素 */公共空间提供(T元素){ ensureCapacity(后+ 1); elementData(后+ +)=元素; } 私人空间ensureCapacity (int minCapacity) {//如果数组的原有长度小于目前所需的长度 int oldCapacity=elementData.length; 如果(minCapacity> oldCapacity) { int newCapacity=(oldCapacity * 3)/2 + 1; 如果(newCapacity
包朗; 进口java.io.Serializable;/* * * @ClassName: LinkQueue * @Description:链式队列 * @date 2014年1月21日下午3:24:38 * @param & lt; T> */公开课LinkQueue实现了Serializable {/* * * @Fields serialVersionUID:待办事项 */私有静态最终长serialVersionUID=-6726728595616312615 l;//定义一个内部类节点,节点实例代表链队列的节点。 {私有类节点 私人T数据;//保存节点的数据 私人节点下;//指向下个节点的引用//无参数的构造器 公共节点(){ }//初始化全部属性的构造器 公共节点(T数据节点下){ 这一点。数据=https://www.yisu.com/zixun/data; 这一点。下一个=下一个; } } 私人节点前面;//保存该链队列的头节点 私人节点后方;//保存该链队列的尾节点 私人int大小;//保存该链队列中已包含的节点数/* * * java队列实现方法(顺序队列,链式队列,循环队列)