「剣指offer」――JavaScript(20)min関数を含むスタック

1982 ワード

min関数を含むスタック
テーマの説明
スタックのデータ構造を定義し、スタックの最小要素を得ることができる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;
    }
    
  • は、スタックが空である場合、trueに戻ります.そうでなければfalse
  • に戻ります.
    isEmpty: function () {
        if (this.top == -1) {
            return true;
        } else {
            return false;
        }
    }
    
  • はスタックに入ります.スタックが満たせば、スタックが満杯となります.そうでなければ、新しいスタックトップ要素として要素elemを使用します.
  • 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;
    }