<>--javascript(5)-2つのスタックでキューを実現する
1052 ワード
二つのスタックでキューを実現します.
テーマの説明
2つのスタックで1つのキューを実現し、キューのPushとPop操作を完了します.キューの要素はintタイプです.コードは以下の通りです
スタックは後進先のデータ構造であり、キューは先進先のデータ構造であり、本題の中で、1、入隊を実現する:要素を直接スタック1に押し込む.2、隊列を実現する:まず二つのスタックが全部空かどうかを判断し、もしそうでないなら、スタック2を判断し、もし空であれば、スタック1は空ではなく、まずスタック1の要素を全部倉庫から出して、順番にスタック2を圧入してから、再びスタック2から出したら、元のスタック1の底にある元素を取得した.
テーマの説明
2つのスタックで1つのキューを実現し、キューのPushとPop操作を完了します.キューの要素はintタイプです.コードは以下の通りです
function Stack(){
var item = [];
this.push = function(node){
item.push(node);
};
this.pop = function(){
return item.pop();
};
this.isEmpty = function(){
return item.length === 0;
};
}
var stack1 = new Stack();
var stack2 = new Stack();
function push(node)
{
stack1.push(node);
// write code here
}
function pop()
{
if(stack1.isEmpty() && stack2.isEmpty()){
throw new Error("Queue is empty");
}
if(stack2.isEmpty()){
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
}
return stack2.pop();
// write code here
}
module.exports = {
push : push,
pop : pop
};
問題を解く構想スタックは後進先のデータ構造であり、キューは先進先のデータ構造であり、本題の中で、1、入隊を実現する:要素を直接スタック1に押し込む.2、隊列を実現する:まず二つのスタックが全部空かどうかを判断し、もしそうでないなら、スタック2を判断し、もし空であれば、スタック1は空ではなく、まずスタック1の要素を全部倉庫から出して、順番にスタック2を圧入してから、再びスタック2から出したら、元のスタック1の底にある元素を取得した.