js实现栈结构,以及十进制转化为任意机制数
程序员文章站
2022-07-10 20:32:15
...
//栈结构
function Stack(){
//声明一个数组来保存元素
let items = [];
//向栈中天添加元素
this.push = function(item){
items.push(item);
}
//删除栈中的最后一个元素,返回所删除的元素
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(){
//toString()函数将数组中的每一个元素都调用toString方法,然后将他们用逗号连接成字符串
console.log(items.toString());
}
}
//十进制转为二进制,利用栈结构实现
//可以使用num.toString(2)可以实现
function ten2two(num) {
let rem , arr = [],res = '';
while(num){
rem = num % 2;
arr.push(rem);
num = Math.floor(num/2);
}
while(arr.length) {
res += arr.pop();
}
return res;
}
//十进制转化为任意进制
function transfer1(num,base) {
return num.toString(base);
}
function transfer2(num,base) {
let arr = [],res = '',rem,digits = '0123456789ABCDEF';
while(num){
rem = num % base;
arr.push(rem);
num = Math.floor(num/base);
}
while(arr.length) {
res += digits[arr.pop()];
}
return res;
}
上一篇: 栈的java实现
下一篇: 适合喝酒的硬菜有哪些