數組
棧
基于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類(需要自己實作,或者網上下載下傳人家的包)
保護資料結構内部元素
使用下劃線來約定一個屬性是否為私有屬性,并不能有效保護。隻能靠開發者的常識