Java中循环队列实现_java 实现循环队列

标签:java   循环   front   operation   rcu   public   sem   param   class

java实现循环队列(leetcode)

package DataStructure;

public class CircularQueue {

/**

* 初始容量

*/

private static final int CAPACITY=100;

/**

* 队首位置

*/

private int front=0;

/**

* 队尾位置

*/

private int capacity;//数组的实际长度

/**

* 队尾位置

*/

private int rear=0;

private int[] queue;

/** Initialize your data structure here. Set the size of the queue to be k. */

public CircularQueue(int k) {

capacity=k+1;

queue=new int[capacity];

}

/** Insert an element into the circular queue. Return true if the operation is successful. */

public boolean enQueue(int value) {

if (isFull()){

return false;

}

queue[rear]=value;

rear=(rear+1)%capacity;

return true;

}

/** Delete an element from the circular queue. Return true if the operation is successful. */

public boolean deQueue() {

if (isEmpty()){

return false;

}

queue[front]=-1;

front=(front+1)%capacity;

return true;

}

/** Get the front item from the queue. */

public int Front() {

if(isEmpty()){

return -1;

}

return queue[front];

}

/** Get the last item from the queue. */

public int Rear() {

if(isEmpty()){

return -1;

}

return queue[(rear-1+capacity)%capacity];

}

/** Checks whether the circular queue is empty or not. */

public boolean isEmpty() {

return (front==rear);

}

/** Checks whether the circular queue is full or not. */

public boolean isFull() {

int size = (capacity - front + rear) % capacity;

return size==capacity-1?true:false;

}

}

/**

* Your MyCircularQueue object will be instantiated and called as such:

* MyCircularQueue obj = new MyCircularQueue(k);

* boolean param_1 = obj.enQueue(value);

* boolean param_2 = obj.deQueue();

* int param_3 = obj.Front();

* int param_4 = obj.Rear();

* boolean param_5 = obj.isEmpty();

* boolean param_6 = obj.isFull();

*/

java 实现循环队列

标签:java   循环   front   operation   rcu   public   sem   param   class

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值