数据结构 - 栈

本文深入探讨了数据结构中的栈概念,包括其先入后出(FILO)特性,并通过JavaScript实现了栈的基本操作如push、pop等。此外,还介绍了如何利用栈将十进制数转换为二进制数,提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构 - 栈,先入后出,后入先出。

// 栈实现
// ES5
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() {
    items = [];
  };

  // 获取栈长度
  this.size = function() {
    return items.length;
  };

  // 检查items
  this.getItem = function() {
    return items;
  };
};

十进制转二进制 - 余数法

var decbin = function(number) {
  var stack = new Stack();
  var remainder = 0, result = '';

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

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

  return result;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值