顺序队(SequenceQueue)

/**
 *
 * 队列可以插入的一端被称为队尾,可以删除的一端被称为队列头,
 * 所以队列的典型特征就是队尾插入,队头删除
 *
 *
 */
public class ShunxuQueue{
    int front = 0;
    int rear = 0;

    Object[] objArray;

    public ShunxuQueue(int n){
        objArray = new Object[n];
    }
    
    public void clear() {
        objArray = null;
        front = rear = 0;
    }

    public boolean isEmpty() {
        return front == rear;
    }

    public int length() {
        return rear - front;
    }

    public Object peek() {
        if(objArray!=null)
            return objArray[front];
        return null;
    }

    public void offer(Object object) throws Exception{
        rear++;
        if(rear<=objArray.length)
            objArray[rear-1] = object;
        else
            throw new Exception("队列已满");

    }

    public Object poll() {
        if(front!=rear){
            Object obj = objArray[front];
            front++;
            return obj;
        }
        return null;
    }
}

Last updated