【JavaScript】用JavaScript实现栈

/*
 push() :添加一个新元素到栈顶。
 pop() :移除栈顶的元素,同时返回被移除的元素。
 peek() :返回栈顶的元素,不对栈做任何修改。
 isEmpty() :如果栈里没有任何元素就返回 true ,否则返回 false 。
 clear() :移除栈里的所有元素。
 size() :返回栈里的元素个数。
*/

function Stack() {
  let items = [],
  this.push = function(element) {
    items.push(element)
  }

  this.pop = function(element) {
    return items.pop(element);
  }

  this.peek = function() {
    return items[items.length-1];
  }

  this.isEmpty = function() {
    return items.length == 0;
  }  

  this.clear = function() {
    items = [];
  }

  this.size = function() {
    return items.length;
  }
}


//Example    十进制转二进制
function divideBy2(Number) {
  let stack = new Stack(),
      rem,
      binaryString = '';

  while(Number > 0) {
    rem = Number % 2;
    stack.push(rem);
    Number = Math.floor(Number / 2);
  }

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

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值