js 實現棧的結構

js實現一個棧的數據結構

首先了解一下什麼是棧,棧是一個後進先出的一種數據結構,執行起來效率比較高。數組

對於棧主要包括一些方法,彈出棧pop(),彈出棧頂元素,並刪除該元素;壓入棧push(),向棧中壓入某個方法,棧中的長度加一;讀取棧頂元素peek(),僅讀取不刪除數據結構

使用js的構造模式建立棧類,原型進行共享主要方法this

代碼實現以下

(function(root) {
    function Stack() {
        this.dataStore = [];
        //數組的元素個數
        this.top = 0;
    }

    Stack.prototype = {
        pop: function() {
            //出棧時,主要使用前減運算,返回棧頂元素,元素個數減一
            return this.dataStore[--this.top];
        },
        push: function(elem) {
            //入棧時,使用後加運算符,先在棧頂添加元素,元素個數加一
            this.dataStore[this.top++] = elem;
        },
        peek: function() {
            return this.dataStore[this.top - 1];
        },
        clear: function() {
            //當清空棧時,訪問棧頂的結果爲undefined
            this.top = 0;
        },
        length: function() {
            return this.top;
        }
    }

    root.Stack = Stack;

})(global);


var stack = new Stack();
stack.push("liang0");
stack.push("liang1");
stack.push("liang2");
console.log(stack.peek());
console.log(stack.pop());
console.log(stack.peek());
stack.push("liang4");
console.log(stack.peek());
stack.clear();
console.log(stack.peek());

執行結果:

相關文章
相關標籤/搜索