色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 實(shí)現(xiàn)隊(duì)列

在javascript中,隊(duì)列是一種常用的數(shù)據(jù)結(jié)構(gòu),它的特點(diǎn)是“先進(jìn)先出”,即先入隊(duì)的元素先出隊(duì)。實(shí)現(xiàn)隊(duì)列可以用數(shù)組或者鏈表,本文將以數(shù)組為例,介紹javascript如何實(shí)現(xiàn)隊(duì)列。

在javascript中,可以使用數(shù)組來(lái)實(shí)現(xiàn)隊(duì)列。我們可以使用push()方法來(lái)向隊(duì)尾添加元素,使用shift()方法來(lái)從隊(duì)頭刪除元素,并利用length屬性來(lái)獲取隊(duì)列長(zhǎng)度。下面是一個(gè)實(shí)現(xiàn)隊(duì)列的代碼示例:

class Queue {
constructor() {
this.items = [];
}
enqueue(element) {
this.items.push(element);
}
dequeue() {
return this.items.shift();
}
size() {
return this.items.length;
}
}

我們可以通過(guò)實(shí)例化Queue類(lèi)來(lái)創(chuàng)建隊(duì)列,并使用enqueue()方法將元素添加到隊(duì)列中,使用dequeue()方法將隊(duì)頭元素刪除,使用size()方法獲取隊(duì)列長(zhǎng)度。例如:

let queue = new Queue();
queue.enqueue("a");
queue.enqueue("b");
queue.enqueue("c");
console.log(queue.size()); // output: 3
console.log(queue.dequeue()); // output: "a"
console.log(queue.dequeue()); // output: "b"
console.log(queue.size()); // output: 1

除了基本的隊(duì)列操作之外,我們可能還需要一些其他的函數(shù)來(lái)對(duì)隊(duì)列進(jìn)行一些高級(jí)處理,比如按照優(yōu)先級(jí)進(jìn)行排序、遍歷隊(duì)列等。下面是幾個(gè)常用的函數(shù)示例:

1.按照優(yōu)先級(jí)進(jìn)行排序

class PriorityQueue extends Queue {
enqueue(element, priority) {
let queueElement = { element, priority };
if (this.isEmpty()) {
this.items.push(queueElement);
} else {
let added = false;
for (let i = 0; i< this.size(); i++) {
if (queueElement.priority< this.items[i].priority) {
this.items.splice(i, 0, queueElement);
added = true;
break;
}
}
if (!added) {
this.items.push(queueElement);
}
}
}
}

這個(gè)示例中,我們創(chuàng)建了一個(gè)PriorityQueue類(lèi),通過(guò)重定義enqueue()函數(shù)來(lái)按照元素的優(yōu)先級(jí)進(jìn)行排序,從上面的代碼可以看到,我們?cè)诓迦朐氐臅r(shí)候,首先創(chuàng)建了一個(gè)對(duì)象來(lái)存儲(chǔ)元素和優(yōu)先級(jí),然后遍歷隊(duì)列找到插入位置,最后調(diào)用splice()方法來(lái)插入元素。

2.遍歷隊(duì)列

Queue.prototype.forEach = function(callback) {
for (let i = 0; i< this.size(); i++) {
callback(this.items[i]);
}
}

這個(gè)示例中,我們給Queue類(lèi)添加了一個(gè)forEach()函數(shù),用來(lái)遍歷隊(duì)列,并傳入一個(gè)回調(diào)函數(shù)來(lái)對(duì)每一個(gè)遍歷到的元素進(jìn)行操作。例:

let queue = new Queue();
queue.enqueue("a");
queue.enqueue("b");
queue.enqueue("c");
queue.forEach(item =>console.log(item));

以上就是javascript實(shí)現(xiàn)隊(duì)列的一些基本方法,通過(guò)它們,我們可以靈活地操作隊(duì)列,并實(shí)現(xiàn)一些高級(jí)的功能。如果遇到其他的需求,我們還可以在此基礎(chǔ)上進(jìn)行擴(kuò)展。