javascript 一03 栈

(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 -- 百度百科

01 栈的创建 -- javascript 数据结构与算法

    function Stack() {
      var items = [];
      this.push = function (element) {
        items.push(element);
      };
      this.pop = function () {
        return items.pop();
      };
      this.peek = function () {
        return items[items.length - 1];
      };
      this.isEmpty = function () {
        return items.length == 0;
      };
      this.size = function () {
        return items.length;
      };
      this.clear = function () {
        items = [];
      };
      this.print = function () {
        console.log(items.toString());
      };
    }

首先我们先创建一Stack类 function Stack() {}
创建一个数组来保存数据 var items = []

=01= 向栈添加元素

 this.push = function (element) {
        items.push(element);
 };

=02= 移除栈里的元素

 this.pop = function () {
        return items.pop();
  };

=03= 查看返回栈顶的元素

  this.peek = function () {
        return items[items.length - 1];
  };

=04= 判断内部数组的长度是否为0

 this.isEmpty = function () {
        return items.length == 0;
      };

=05=返回栈的长度

this.size = function () {
        return items.length;
};

=06=清空

   this.clear = function () {
        items = [];
      };

=07=输出在控制台

   this.print = function () {
        console.log(items.toString());
      };  `

02 使用Stack类

var stack = new Stack(); 
console.log(stack.isEmpty());

首先我们初始化 stack 类
然后先验证是否是空 console.log(stack.isEmpty()) 返回true

stack.push(5); 
stack.push(8);
console.log(stack.peek());//输出8

添加数据 ,查看返回栈顶的元素

stack.push(11); 
console.log(stack.size()); //输出3 
console.log(stack.isEmpty()); //输出false

添加一个新的元11
调用size()方法,长度为3
有数据。不为空

stack.pop();
console.log(stack.size()); //输出2 
stack.print(); //输出[5, 8]

移除一个元素,长度为2

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