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

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