當前位置:網站首頁>622. 設計循環隊列

622. 設計循環隊列

2022-05-14 07:52:41zcd_2020

在這裏插入圖片描述

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/design-circular-queue
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

class MyCircularQueue {
    
	//數組模擬隊列
    private int[] arr;
    private int maxSize;
    private int front;
    private int rear;
    int sum;   //隊列元素計數

    public MyCircularQueue(int k) {
    
        maxSize = k;
        arr = new int[k];
        front = 0;    //頭指針
        rear = -1;    //尾指針
        sum = 0;
    }

    public boolean isFull() {
    
        return sum == maxSize;
    }
    //添加元素
    public boolean enQueue(int value) {
    
        if(isFull()){
    
            return false;
        }else{
    
            rear = (rear+1)%maxSize;  //增加1
            arr[rear] = value;
            sum++;
            return true;
        }
    }
    //删除元素
    public boolean deQueue() {
    
        if(isEmpty()){
    
            return false;
        }else{
    
            front = (front+1)%maxSize;
            sum--;
            return true;
        }
    }
    //返回頭元素
    public int Front() {
    
        if(isEmpty()){
    
            return -1;
        }else{
    
            return arr[front];
        }
    }
    //返回尾元素
    public int Rear() {
    
        if(isEmpty()){
    
            return -1;
        }else{
    
            return arr[rear];
        }
    }
    
    public boolean isEmpty() {
    
        return sum==0;
    }
    
    
}

版權聲明
本文為[zcd_2020]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/134/202205140617475806.html

隨機推薦