【js 4 agls】データ構造JavaScript記述-キュー編
1989 ワード
キュー(Que)は、スタックとは違って、操作要素が両端にあり、作業が違っています.列の最後尾に要素を入れて入列といい、列の先頭に元素を削除して列を作るといいます.
ADT
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も歓迎します.