//封装一个栈
function Stack(){
//栈里的属性
this.items = [];
}
//栈的相关操作
//1.新元素入栈
Stack.prototype.push = function(ele){
this.items.push(ele);
}
//2.从栈顶取出元素
Stack.prototype.pop = function(){
return this.items.pop();
}
//3.查看栈顶元素
Stack.prototype.peek = function(){
return this.items[this.items.length-1];
}
//4.栈是否为空
Stack.prototype.isEmpty = function(){
return this.items.length == 0;
}
//5.获取栈里元素的个数
Stack.prototype.size = function(){
return this.items.length;
}
//6.toString方法
Stack.prototype.toString = function(){
var result = '';
for(var i=0;i<this.items.length;i++){
result+=this.items[i] +' ';
}
return result;
}
// var s = new Stack();
// s.push(20);
// s.push(2);
// s.push(45);
// s.push(12);
// s.push(9);
// console.log(s);
// console.log(s.pop());
// console.log(s.pop());
// console.log(s.pop());
// console.log(s.peek());
// console.log(s.isEmpty());
// console.log(s.size());
// console.log(s.toString());
//将十进制转化为二进制
function decimal2Binary(decNum){
//1定义栈对象
var stack = new Stack()
//2.循环操作
while(decNum>0){
//获取余数,放入栈中
stack.push(decNum % 2);
//获取整除的结果作为下一次运算的数字
decNum = Math.floor(decNum/2);
}
//3.从栈中取出结果转化为字符串
var binaryStr = '';
while(!stack.isEmpty()){
binaryStr +=stack.pop();
}
return binaryStr;
}
console.log(decimal2Binary(100));
console.log(decimal2Binary(999));
console.log(decimal2Binary(924));
封装一个Stack 并实现10进制转2进制
最新推荐文章于 2022-11-07 11:32:23 发布