栈定义
栈是一种遵从后进先出(LIFO)原则的有序集合。
创建栈
//使用类来创建栈
function Stack(){
//各种属性和方法的声明
}
栈常见方法
push(elements)//添加一个或多个元素pop()//移除栈顶元素peek()//返回栈顶元素isEmpty()//栈空返回trueclear()//移除栈里的所有元素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))
919

被折叠的 条评论
为什么被折叠?



