天天看點

線性結構(數組、棧、隊列、連結清單)

數組

基于JavaScript對象的Stack類

class stackArray {
   //構造函數,初始化棧,采用對象的方式存儲,
   //也可以采用數組的方式儲存,就可以使用數組的API來改寫
   //push和pop都可以拿來用的
   //注意:這裡top初始化為0
    constructor() {
        this._stackArray = {}
        this._top = -1
    }
    isEmpty(){
        if(this._top == -1)
        return true
        return false
    }
    push(elem){
        this._top++
        this.stackArray[this._top] = elem
    }
    pop(){
        if(this.isEmpty())
        return undefined
        delete this.stackArray[this._top--]
    }
    peek(){
        console.log(this._stackArray);
        return this.stackArray[this._top]
    }
}
let stack = new stackArray()
stack.push(1)
console.log(stack.peek());
stack.push(2)
console.log(stack.peek());
stack.pop()
console.log(stack.peek());
           

使用Stack類(需要自己實作,或者網上下載下傳人家的包)

保護資料結構内部元素

使用下劃線來約定一個屬性是否為私有屬性,并不能有效保護。隻能靠開發者的常識

隊列

連結清單

繼續閱讀