栈是一种遵从后进先出(LIFO)原则的有序集合。
在js中可以使用数组这一数据结构来保存栈里的元素。
代码如下:
function Stack() {//stack类
var items = [];//数组
//下列是为栈声明的一些方法
this.push = function (element) {
items.push(element);
}
this.pop = function () {
return items.pop();
}
this.peek = function () {
return items[items.length - 1];
}
this.isEmpty = function () {
return items.length==0;
}
this.size = function (){
return items.length;
}
this.clear = function (){
items=[];
}
this.print = function(){
console.log(items.toString());
}
}
function divideBy2(decNumber){//十进制转二进制方法
var remStack = new Stack(),
rem,
binaryString='';
while(decNumber > 0){
rem= Math.floor(decNumber%2);
remStack.push(rem);
decNumber=Math.floor(decNumber/2);
}
while(!remStack.isEmpty()){
binaryString+=remStack.pop().toString();
}
return binaryString;
}
console.log(divideBy2(333));//测试数据为:333,最后输出:101001101