美文网首页
栈 --js实现

栈 --js实现

作者: 安石0 | 来源:发表于2018-06-04 23:01 被阅读0次

栈是一种遵从后进先出(LIFO)原则的有序集合,新添加的或待删除的元素都保存在栈的同一端,称为栈顶,另一端称为栈底。
生活中常见的例子就是,一堆盘子放在桌上,后放的盘子,先拿出来。

es5方法实现

function Stack(){
  let items=[]
  this.push=function(val){
  items.push(val)
  }
  this.pop=function(){
  return items.pop()
  }
  this.size=function(){
     return items.length
  }
  this.print=function(){
     console.log(items) 
 }
this.isEmpty=function(){
    return items.length===0 }
}

应用1:进制转换

1,10进制转2进制
num=10
num=num/2=5 ---0
num=num/2=2 ---1
num=num/2=1 ---0
num=num/2=0 ---1
10变成二进制为1010

function divideBy2(num){
var remStack=new Stack(),result='',rem
while(num>0){
rem=Math.floor(num%2)
remStack.push(rem)
num=Math.floor(num/2)
}
remStack.print()
while(!remStack.isEmpty()){
  result+=remStack.pop().toString()
}
return result
}

应用2:10进制转n(2,8,16)进制

function divideBy2(num,base){
var remStack=new Stack(),result='',rem,digits='0123456789ABCDEF'
while(num>0){
rem=Math.floor(num%base)
remStack.push(rem)
num=Math.floor(num/base)
}
remStack.print()
while(!remStack.isEmpty()){
  result+=digits[remStack.pop()]
}
return result
}

相关文章

  • 链表的JS实现

    参考链接:栈的JS实现

  • 栈 --js实现

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

  • JS实现栈

    GitHub: https://github.com/BadWaka/data-structure-algorit...

  • 算法(五):栈

    一、栈(后进先出) JS中没有栈,Array实现栈的所有功能入栈:push出栈:pop // 移除数组最后一项,并...

  • js Arrary

    栈方法: js提供了两个方法,来实现类似栈的操作: push()、pop() 栈是一种LIFO(last in f...

  • 前端-算法1:栈、队列、链表

    栈 一个先进后出的数据结构JS中没有栈,用Array实现栈的功能进栈: push 出栈:pop栈的应用场景: 十进...

  • 笔试算法须知---用JS实现栈处理问题

    使用js实现stack 栈的性质:先进后出,只能在栈顶插入和删除 /*测试stack的实现 */ 之前有道某雷的前...

  • 1. 栈

    1. 栈简介(后进先出) 栈是一个后进先出的数据结构; JS 中没有栈,但是可以用 Array 实现栈中的所有的功...

  • JS全栈开发能干什么

    本文将分享一下,基于JS全栈技术栈,能实现什么应用。 从1995年JS的出现,到2009年ES5发布后出现了nod...

  • Flask Vue.js 全栈开发

    Flask Vue.js全栈开发 1. Flask Vue.js全栈开发教程系列 Flask Vue.js全栈开发...

网友评论

      本文标题:栈 --js实现

      本文链接:https://www.haomeiwen.com/subject/ktessftx.html