包工头带你通算法 –js 描述 栈, 队列(一)
简单叙述下栈 队列
栈: 先进后出 , 队列:先进先出 (就是这么简单)。个人理解,栈就是给个数组 a = [1,2,3,4] 只能进行 pop(), 和 push() 操作,队列就是只能进行 shift() push()操作
talk is cheap show me the picture(左栈 右队列)
这是书上的栈,队列
感觉怪怪的
都 9012 年了
class Stack{
constructor(){
this.data = [];
this.top = 0;
this.length = 0;
}
// 入栈
push(ele){
this.length ++;
return this.data[this.top ++] = ele;
}
// 出栈
pop(){
this.top > 0 ? this.top — : false;
this.length > 0 ? this.length — : false;
return this.data.pop();
}
// 清空栈
clear(){
this.top = 0;
this.length = 0;
return this.data = [];
}
// 返回栈顶元素
posTop(){
return this.data[– this.top]; // 这里要先减 再赋值
}
}
var st = new Stack();