队列

class Queue<T> {
  private int front;//队头
  private int rear;//队尾
  private int count;//队元素个数
  private int queueSize;//队长度
  private T[] object;

  public Queue() {
    this(10);
  }

  public Queue(int queueSize) {
    this.queueSize = queueSize;
    this.object = (T[]) new Object[queueSize];
    this.front = 0;
    this.rear = 0;
    this.count = 0;
  }

  public boolean isEmpty() {
    return count == 0;
  }

  public boolean isFull() {
    return count == queueSize;
  }

  public void push(T o) {
    if (this.isFull()) {
      throw new RuntimeException("队列是满的");
    }
    count++;
    object[rear] = o;
    rear = (rear + 1) % queueSize;
  }

  public T pop() {
    T result;
    if (this.isEmpty()) {
      throw new RuntimeException("队列是空的");
    }
    result = this.object[front];
    count--;
    front = (front + 1) % queueSize;
    return result;
  }

  public T peek() {
    if (this.isEmpty()) {
      throw new RuntimeException("队列是空的");
    }
    return this.object[front];
  }

  public int getCount() {
    return count;
  }

  public int getQueueSize() {
    return queueSize;
  }

  public int getFront() {
    return front;
  }

  public int getRear() {
    return rear;
  }

  public T[] getObject() {
    return object;
  }
}

转载于:https://www.cnblogs.com/win24/p/4426385.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值