【js 4 agls】データ構造JavaScript記述-キュー編


キュー(Que)は、スタックとは違って、操作要素が両端にあり、作業が違っています.列の最後尾に要素を入れて入列といい、列の先頭に元素を削除して列を作るといいます.
ADT
Queue
---
length,  ,    
dataStore,  ,    
enQueue,  ,   
delQueue,  ,   
empty,  ,    
front,  ,      
rear,  ,      
print,  ,    
JavaScriptの説明
//     
function Queue () {
    this.length = 0;
    this.dataStore = [];
}
//       
Queue.prototype = {
    constructor: Queue,
    enQueue: function (element) {
        //            1
        this.dataStore[this.length++] = element;
    },
    delQueue: function () {
        var res = this.dataStore[0], //      
            i;

        //       
        if (res !== undefined) {
            
            //         js       
            //       ,            ,      
            // js              ,    shift
            if (this.length > 1) {
                for (i = 0; i < this.length - 1; i++) {
                    this.dataStore[i] = this.dataStore[i + 1];
                }
                this.dataStore.length -= 1;
            } else {
                //         ,        
                this.dataStore = [];
            }
            this.length -= 1;
        }

        return res;
    },
}
//     
empty: function () {
    this.dataStore.length = 0;
    this.length = 0;
},
front: function () {
    return this.dataStore[0];
},
rear: function () {
    return this.dataStore[this.length - 1];
},
print: function () {
    for (var i = 0; i < this.length; i++) {
        console.log(this.dataStore[i] + '
'); } }
テスト
var q = new Queue();
q.enQueue('jiavan');
q.enQueue('jiavan2');
q.enQueue('jiavan3');
q.enQueue('jiavan4');
q.print();
q.delQueue(); // jiavan
q.length; // 3
q.front(); //jiavan2
q.rear();// jiavan4
q.empty();
q.dataStore; //[]
シリーズの記事の原文の住所https://github.com/Jiavan/js4algs GitHub repoはソースコードとより良い読書体験があります.間違いがあれば、PRを歓迎します.もしあなたに助けがあれば、starも歓迎します.