数据结构-javascript实现【 栈 】


栈是一种遵从后进先出(LIFO) 原则的有序集合。新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端叫做栈底。

1. 栈所拥有的方法

 push: 添加一个元素到栈顶

 pop: 移除栈顶的元素

 peek: 返回栈顶的元素

 clear: 清空栈里的元素

 isEmpty: 检测栈是否为空

 size: 返回栈的元素个数

2. 栈的实现

function stack() {
  let items = [];
  
  const push = (element) => {
    items.push(element);
  }

  const pop = () => {
    return items.op();
  }

  const peek = () => {
    return items[items.length-1];
  }

  const isEmpty = () => {
    return items.length == 0;
  }

  const size = () => {
    return items.length;
  }

  const clear = () => {
    items = [];
  }

  const print = () => {
    console.log(items.toString());
  }
  return {
    push,
    pop,
    peek,
    isEmpty,
    size,
    clear,
    print
  };
}

3. 栈的测试

const stackObj  = stack();
stackObj.push(1);
stackObj.push(2);
const a = stackObj.peek();
console.log(a);
const b = stackObj.size();
console.log(b);
stackObj.print();