天天看點

資料結構: 使用 JavaScript 實作棧結構

1. JavaScript 實作棧結構

class Stack {
  #item = []; // 防止執行個體化的棧直接通過下标修改棧結構

  // 入棧
  push(element) {
    this.#item.push(element);
  }

  // 出棧
  pop() {
    this.#item.pop();
  }

  // 顯示棧頂元素
  peek() {
    return this.#item[this.#item.length - 1];
  }

  // 擷取棧的長度
  size() {
    return this.#item.length;
  }

  // 判斷棧是否為空
  isEmpty() {
    return this.size() === 0;
  }

  // 清空棧
  clear() {
    this.#item = [];
  }
  
  // 轉字元串
  toString() {
    let re = "";
    this.#item.forEach((value) => {
      re = value + re;
    });
    return re;
  }
}

let stack = new Stack();
           

2. 利用棧結構實作進制轉化

function getNum(num, base) {
  let stack = new Stack();

  while (num > 0) {
    stack.push(num % base);
    num = Math.floor(num / base);
  }

  return Number(stack.toString());
}
           

繼續閱讀