包工头带你通算法--js 描述 栈 队列(一)

包工头带你通算法--js 描述 栈,队列(一)

简单叙述下栈 队列

  1. 栈:先进后出 ,队列:先进先出(就是这么简单)。个人理解, 栈就是给个数组a = [1,2,3,4] 只能进行pop(), 和push()操作, 队列就是只能进行shift() push()操作
  2. talk is cheap show me the picture(左栈 右队列)

clipboard.png

这是书上的栈,队列

感觉怪怪的
clipboard.png
clipboard.png

都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();
  

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章