JavaScript 的資料結構和演算法 - 棧程式碼篇

MasterShu發表於2020-01-05

這篇文章主要是棧這種資料解構的 JavaScript 程式碼實現,更多文字相關介紹,請 移步

建構函式

  constructor() {
    /**
     * @type {*[]}
     */
    this.data = []
    /**
     * @type {number}
     */
    this.count = 0
  }

主要方法實現

入棧操作

  /**
   * Add new element to the top.
   * @param item
   */
  push(item) {
    this.data[this.count] = item
    this.count++
  }
  /**
   * Building Stack of array by array
   * @param {Array} array
   */
  build(array) {
    this.count = array.length
    this.data = array
  }

出棧操作

  /**
   * The most top element of the stack is removed from the stack and returned.
    * @returns {null|T}
   */
  pop() {
    if (this.count === 0) {
      return null
    }
    const element = this.data.pop()
    this.count--
    return element
  }

輔助方法實現

  /**
   * Get stack size 獲取棧的大小
   * @returns {number}
   */
  get size () {
    return this.count
  }

原始碼地址 https://github.com/MasterShu/JavaScript-Da...

本作品採用《CC 協議》,轉載必須註明作者和本文連結
路漫漫其修遠兮,吾將上下而求索。

相關文章