java队列实现方法(顺序队列,链式队列,循环队列)

  

双向顺序队列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队列实现方法(顺序队列,链式队列,循环队列)