js資料結構之棧

柯藍僧人發表於2019-03-11

說明

為了加強自己的內功,我準備多學學底層的基礎的東西,剛看完了你不知道的js,下面來整一整資料結構,第一個就是棧。

開始了

棧是一種遵循後進先出(last in first out)原則的有序集合。新新增的或待刪除的元素都儲存在棧的同一端,稱為棧頂,另一端就是棧底。就像裝乒乓球的盒子,

js資料結構之棧
下面用程式碼來實現一下。

ES6版本

class Stack {
    constructor() {
        this.items = []
    }
    
    // 往棧裡新增新元素
    push (ele) {
        this.items.push(ele)
    }
    // 移除棧裡的元素
    pop() {
        return this.items.pop()
    }
    // 檢視棧頂的元素
    peek () {
        return this.items[items.length - 1]
    }
    // 檢查棧頂是否為空
    isEmpty () {
        return this.items.length == 0    
    }
    // 返回棧的長度
    size () {
        return this.items.length;
    }
    // 清空棧
    clear () {
        this.items = []
    }
    // 列印棧元素 ,測試使用
    console () {
        return this.items
    }
}
複製程式碼

ES版本

function Stack () {
      var items = [];
      //往棧裡新增新元素
      this.push = function (ele) {
        items.push(ele);
      },
      // 移除棧裡的元素
      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.console = function () {
        return items
      }
    }
複製程式碼

下一篇是堆。

相關文章