Javascript中的栈

栈 是一种遵从 后进先出(LIFO)原则的有序集合。就像一摞盘子。

push 添加一个元素到栈顶

pop 移除并返回栈顶的元素

peek 返回栈顶元素

isEmpty 如果栈里没有任何元素,返回true,否则返回false。

clear 移除栈里的所有元素

size 返回元素的个数

function Stack() {
      var items=[];
      this.push=function(ele){
        items.push(ele);
      }
      this.pop=function(){
        return items.pop();
      }
      this.peek=function(){
        return items[items.length-1];
      }
      this.isEmpty=function () {
        return items.length==0;
      }
      this.size=function () {
        return this.length;
      }
      this.clear=function () {
        items=[];
      }
      this.print=function () {
        console.log(items.toString());
      }
 }

  转换为二进制

function divideBy2(decNumber) {
      var remStack=new Stack(),rem,binaryString="";
      while (decNumber>0) {
        rem=Math.floor(decNumber%2);
        remStack.push(rem);
        decNumber=Math.floor(decNumber/2);
      }
      while(!remStack.isEmpty()){
        binaryString+=remStack.pop().toString();
      }
      return binaryString;
 }

  转换为任意进制

function baseConverter(decNumber,base) {
      var remStack=new Stack(),rem,binaryString="",digits="0123456789ABCDEF";
      while (decNumber>0) {
        rem=Math.floor(decNumber%base);
        remStack.push(rem);
        decNumber=Math.floor(decNumber/base);
      }
      while(!remStack.isEmpty()){
        binaryString+=digits[remStack.pop()];
      }
      return binaryString;
 }

  

时间: 2024-10-17 20:55:23

Javascript中的栈的相关文章

javascript中的栈、队列。

                       javascript中的栈.队列 栈方法     栈是一种LIFO(后进先出)的数据结构,在js中实现只需用到2个函数 push()  接受参数并将其放置数组尾,并返回修改后的数组长度. pop()  移除数组尾的最后一项,并返回移除项的值. 事例: var colors = new Array();var count = colors.push("red","green"); count = colors.push(&

javascript中的栈结构

1.栈的定义 栈是一种和列表类似的数据结构,可以用它来解决很多的编程问题,栈是一种高效的数据结构,因为数据只能在栈的顶端添加或者删除,所以这样的操作很快而且容易实现. 栈是一种特殊的列表,站内的元素只能拖过列表的一端进行访问,这一端陈伟栈顶.一叠盘子是最常见的栈结构,只能从顶部取盘子,洗好的盘子也只能放在顶端.栈被称为后入先出的数据结构. 由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问.为了得到栈底的元素,必须拿掉上面的元素. 对栈的操作有将一个元素压入栈和将一个元素弹出栈.压入栈使

JavaScript中的函数与栈

Javascript中会经常用到setTimeout来推迟一个函数的执行,如: setTimeout(function(){ alert("Hello World"); },1000); 会在执行到这句话后延迟1秒钟来弹出alert窗口.兴城市费永礼品 那么再看这一段: function test(){ setTimeout(function() {alert(1)}, 0); alert(2); } test(); 注意这段代码中的setTimeout延迟设为了0,就是延迟0毫秒,貌

JavaScript中执行环境和栈

在这篇文章中,我会深入理解JavaScript最根本的组成之一 : "执行环境(执行上下文)".文章结束后,你应该对解释器试图做什么,为什么一些函数/变量在未声明时就可以调用并且他们的值是如何确定的有一个清晰的认识. 什么是执行环境(执行上下文)当代码在JavaScript中运行的时候,代码在环境中被执行是非常重要的,它会被评估为以下之一类型来运行:全局代码:默认环境,你的代码第一时间在这儿运行.函数代码:当执行流进入一个函数体的时候.Eval代码:在eval()函数中的文本. 你可以

理解JavaScript中的堆和栈

这里先说两个概念:1.堆(heap)2.栈(stack)堆 是堆内存的简称.栈 是栈内存的简称.说到堆栈,我们讲的就是内存的使用和分配了,没有寄存器的事,也没有硬盘的事.各种语言在处理堆栈的原理上都大同小异.堆是动态分配内存,内存大小不一,也不会自动释放.栈是自动分配相对固定大小的内存空间,并由系统自动释放. javascript的基本类型就5种:Undefined.Null.Boolean.Number和String,它们都是直接按值存储在栈中的,每种类型的数据占用的内存空间的大小是确定的,并

javascript中的原始值和复杂值

前面的话 javascript的数据类型可以分为两种:原始类型(基本类型或者简单类型)和引用类型. 原始类型:Undefined,Null,Boolean,Number,String五种: 引用类型:Object,Array,Function: 与此相对应的,它们的值分别被称为原始值和复杂值. 特性 原始值 原始值是表示javascript中可用的数据或信息的最底层的形式或者最简单的形式.原始类型的值被称为原始值,因为它们的值是不可被细化的.也就是说,数字是数字,字符串是字符串,布尔值是true

javascript数据结构之栈。

接下来我会试着用javascript来是实现常见数据结构,今天先写栈. 首先我们得知道,栈是一种遵循后进先出(LIFO)原则的有序集合.新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底.在JavaScript中变量保存和函数调用都是用栈存储的. 首先创建一个类来表示一个栈,需要一种数据结构来保存栈里的元素.这里我们就选择数组来存放栈内部的数据:var array = [ ]; 注意此时数组array的末端相当于栈的顶端.接下来,为我们的

Javascript 中的回调函数和递归函数简单实际分析学习

Javascript 中的回调函数和递归函数简单实际分析学习 1 回调函数 所谓回调函数简单理解就是将一个函数做为参数传递给其他的函数供其使用.(只是在js中,因为其它的语言中有指针这个概念). 举一个简单的例子,当我们在统计账单的时候就要整理材料这些,然后就需要计算器,计算器我们想象成为一个可以实现计算的函数.统计账单是另外的另一个函数,当统计账单的时候就会需要计算器这个函数的支持,其实这就是一个简单的回调.可以按这个理解. 下来我借用网上的一个例子: //先定义一个函数fun1 functi

Javascript 中的严格模式

原文:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之