js数据结构及算法——封装简单栈
//Method--方法:和某一个对象实例有联系 //function--函数 //封装栈类 function Stack() { //栈的属性 this.items = [] //栈的向光操作 //1.将元素压入栈内 // this.push = function () { }//此方式相当于给某个对象实例添加方法(每个实例都添加,占用了内存) Stack.prototype.push = function (element) {//此方法相当于给整个类添加方法(更节省内存/更高效) this.items.push(element); } //2.从栈中取出元素 Stack.prototype.pop = function () { return this.items.pop(); } //3.查看一下栈顶元素 Stack.prototype.peek = () => { return this.items[this.items.length - 1]; } //4.判断栈是否为空 Stack.prototype.isEmpty = () => { return this.items.length == 0; } //5.获取栈中元素的长度 Stack.prototype.size = () => { return this.items.length; } //6.toString方法 Stack.prototype.toString = () => { let getString = "" for (let i = 0; i < this.items.length; i++) { getString += this.items[i] + " "; } return getString; } } //栈的使用 // let a = new Stack(); // a.push(10); // a.push(20); // a.push(30); function dec2bin(decNumber) { //1.定义栈对象 let stack = new Stack() //2.循环操作 while (decNumber > 0) { stack.push(decNumber % 2); decNumber = Math.floor(decNumber / 2); } let getBin = ""; while (!stack.isEmpty()) { getBin += stack.pop() } return getBin } console.log(dec2bin(10))