封装简单栈,主要包括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)) 







网友评论文明上网理性发言 已有0人参与
发表评论: