(八)抽象数据结构—队列

来源:互联网 发布:双色球免费过滤软件 编辑:程序博客网 时间:2024/04/30 07:52

一、队列说明:

队列和栈一样,也属于抽象数据类型,也主要是作为构思算法的辅助工具之一。不同的是队列的实现原理和栈不同,它采用的是FIFO(先进先出),而栈则是LIFO(后进先出)。

下面我们用数组来实现队列的描述,当然,队列的实现也可以采用链表等数据结构。

二、Java语言描述队列:

package com.solid.queue;

publicclass Queue {

   //队首

   privateintfront;

   //队尾

   privateintrear;

   //队列容量

   privateintmaxSize;

   //队列元素个数

   privateintnElems;

   //数组描述队列

   privatelong[]queArray;

   

   /**

    *构造方法

    */

   public Queue(int maxSize) {

      this.maxSize = maxSize;

      queArray =newlong[maxSize];

      front = 0;

      rear = -1;

      nElems = 0;

   }

   

   /**

    *入列

    *@paramvalue

    */

   publicvoid insert(long value) {

      if(rear == maxSize) {

          rear = -1;

      }

      queArray[++rear] = value;

      nElems++;

   }

   

   /**

    *出列

    *@return

    */

   publiclong remove() {

      long temp =queArray[front++];

      if(front == maxSize) {

          front = 0;

      }

      nElems--;

      return temp;

   }

 

   /**

    *是否为空列

    *@return

    */

   publicboolean isEmpty() {

      return (nElems == 0);

   }

   

   /**

    *是否满列

    *@return

    */

   publicboolean isFull() {

      return (nElems == maxSize);

   }

   

   /**

    *查看列首元素

    *@return

    */

   publiclong peekFront() {

      returnqueArray[front];

   }

   

   /**

    *队列元素个数

    *@return

    */

   publicint size() {

      returnnElems;

   }

}