数据结构 - 栈

122 阅读1分钟

什么是栈?

栈是一种后进先出(LIFO)的数据结构

基本的计算机数据结构

image.png

实现的方法

image.png

// 栈方法实现

var Stack = function() {
    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.clear = function() {
      return items = [];
    }
    
    // 获取栈的大小
    this.size = function() {
      return items.length;
    }
    
    // 获取栈的方法
    this.getItems = function() {
       return items;
    }
}

实战:十进制到二进制转换

const transfer2By10 = function(number) {
    const stack = new Stack();
    const yushu;
    let result = '';
    while(number > 0) {
      yushu = number % 2;
      stack.push(yushu);
      number = Math.floor(number / 2)
    }

    while(!stack.isEmpty()) {
        result += stack.pop();
    }    
    return result;
}