// 栈的定义: 它是一种受限的线性表,只能从表的一端进行插入和删除运算,先进后出。 // 栈的封装 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