栈的学习

// 栈的定义: 它是一种受限的线性表,只能从表的一端进行插入和删除运算,先进后出。

// 栈的封装
class Stack{
    constructor() {
        this.items=[]
    }
    // 栈的相关操作
    // 1.将元素压入到栈
    push(item) {
        this.items.push(item)
    }
    // 2.从栈中取出元素
    pop() {
        return this.items.pop()
    }
    // 3.查看一下栈顶元素
    peek() {
        return this.items[item.length - 1]
    }
    // 4.判断栈中是否为空
    isEmpty() {
        return this.items.length === 0
    }
    // 5.获取栈中元素个数
    size() {
        return this.items.length
    }
    // 6.toString
    toString() {
       return this.items.join(' ')
    }
}
//栈的一个应用: 将10进制 转化为2进制
/**
 * 将10进制 转化为2进制
 * @param num 十进制数字
 */
function dec2bin(num) {
    var s= new Stack()
    while (num>0) {
        s.push(num % 2)
        num= Math.floor(num /2)
    }
    let binNum=''
    while (!s.isEmpty()){
        binNum+= s.pop()
    }
    return binNum
}
dec2bin(100) //1100100

 

posted @ 2020-03-01 15:35  有点油  阅读(117)  评论(0编辑  收藏  举报