「剣指offer」――JavaScript(20)min関数を含むスタック
1982 ワード
min関数を含むスタック
テーマの説明
スタックのデータ構造を定義し、スタックの最小要素を得ることができるmin関数をこのタイプで実現してください.
コードを実現
スタック(stack)は、演算が制限された線形表であるスタックと呼ばれる.その制限は、表の端だけに挿入と削除を許可することです.この端はスタックトップと呼ばれ、反対に他端をスタック底と呼ぶ.新しい要素を一つのスタックに挿入することは、進スタック、入スタックまたは圧スタックとも呼ばれ、新しい元素をスタックの上に置いて、新しいスタックのトップ要素にします.一つのスタックから要素を削除することは、スタックまたはロールオフとも呼ばれ、それはスタックトップ要素を削除し、その隣接する要素を新たなスタックトップ要素にする.
JavaScriptは配列でスタックを実現する:スタック初期化:空きスタックを作成する は、スタックが空である場合、trueに戻ります.そうでなければfalse に戻ります.はスタックに入ります.スタックが満たせば、スタックが満杯となります.そうでなければ、新しいスタックトップ要素として要素elemを使用します. キャンセル:スタックトップ要素を削除し、その値 を返します.スタックトップ要素を読む:スタックトップ要素を返す クリアスタック:スタックを空にする スタック長:スタックの要素個数を返し、スタックの長さ
テーマの説明
スタックのデータ構造を定義し、スタックの最小要素を得ることができるmin関数をこのタイプで実現してください.
コードを実現
var stack=[];
function push(node)
{
stack.push(node);
}
function pop()
{
return stack.pop();
}
function top()
{
return stack[0];
}
function min()
{
return Math.min.apply(this,stack);
}
module.exports = {
push : push,
pop : pop,
top : top,
min : min
};
関連知識スタック(stack)は、演算が制限された線形表であるスタックと呼ばれる.その制限は、表の端だけに挿入と削除を許可することです.この端はスタックトップと呼ばれ、反対に他端をスタック底と呼ぶ.新しい要素を一つのスタックに挿入することは、進スタック、入スタックまたは圧スタックとも呼ばれ、新しい元素をスタックの上に置いて、新しいスタックのトップ要素にします.一つのスタックから要素を削除することは、スタックまたはロールオフとも呼ばれ、それはスタックトップ要素を削除し、その隣接する要素を新たなスタックトップ要素にする.
JavaScriptは配列でスタックを実現する:
Init: function () {
this.STACKMAX = 99;
this.stack = new Array(this.STACKMACK);
this.top = -1;
return this.stack;
}
isEmpty: function () {
if (this.top == -1) {
return true;
} else {
return false;
}
}
Push: function (node) {
if (this.top == this.STACKMAX - 1) {
return new Error(" ");
} else {
this.top++;
this.stack[this.top] = node;
}
}
Pop: function () {
if (this.top == -1) {
return new Error(" , !");
} else {
return this.stack[this.top--];
}
}
Top: function () {
if (this.top != -1) {
return this.stack[this.top];
} else {
return new Error(" , !");
}
}
Clear: function () {
this.top = -1;
}
Length: function () {
return this.top + 1;
}