js實現循環隊列

隊列:先進先出

    function Queue(len){
        let _arr = new Array(len+1);
        let front = 0;
        let rear = 0;

        this.enQueue = function(item){
            if(this.isFull()){
                console.log('隊列已滿!');
                return false;
            }    
            _arr[rear] = item;
            rear = (rear+1)%_arr.length;
        }

        this.deQueue = function(){
            if(this.isEmpty()){
                console.log('隊列爲空!');
                return false;
            }
            let item = _arr[front];
            front = (front+1)%_arr.length;
            return item;
        }

        this.isEmpty = function(){
            return front === rear;
        }

        this.isFull = function(){
            return (rear+1) % _arr.length === front;
        }
    }

使用(front+1)%arr.length 的方式向後移動指向開頭和結尾的指針,循環隊列要求空一個空間來判斷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章