JavaScript数据结构复习(篇2)栈

栈定义

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

创建栈

//使用类来创建栈
function Stack(){
 //各种属性和方法的声明
}

栈常见方法

  • push(elements) //添加一个或多个元素
  • pop() //移除栈顶元素
  • peek() //返回栈顶元素
  • isEmpty() //栈空返回true
  • clear() //移除栈里的所有元素
  • size() //返回栈里元素个数

栈常见方法实现

function Stack(){
 //各种属性和方法的声明
 let items=[]//使用数组来保存栈里的元素 
 this.push=function(elements){
  items.push(elements)
 }
 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 items.length
 }
 this.clear=function(){
  items=[]
 }
 this.print=function(){
  console.log(items.toString())
 }
}

栈的运用常景

例子:将十进制数字10转换成二进制数字

function Tento(num){
 let stack=new Stack()
 console.log(stack)
 let rem//余数
 let str=''
 do{
  rem=Math.floor(num%2)
  console.log('余数:'+rem)
  stack.push(rem)
  num=Math.floor(num/2)//向下取整 
  console.log(num)
 }while(num>0)
        //当num大于0时一直进行do操作
 while(stack.isEmpty()===false){
  //判断栈是否为空,不为空一直输出
  str+=stack.pop().toString()
 }
 return str
}
console.log(Tento(2))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值