美文网首页
JS 用栈的方式实现十进制对任一进制的转换

JS 用栈的方式实现十进制对任一进制的转换

作者: Delevent | 来源:发表于2020-04-30 14:52 被阅读0次

    1. 建一个栈类

    function 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());
        };
    }
    

    2. 借助栈对象做十进制对任一进制的转换

    function baseConverter(decNumber, base){
        var remStack = new Stack(),
            rem,
            baseString = '',
            digits = '0123456789ABCDEF'; 
    
        while (decNumber > 0){
            rem = Math.floor(decNumber % base);
            remStack.push(rem);
            decNumber = Math.floor(decNumber / base);
        }
    
        while (!remStack.isEmpty()){
            baseString += digits[remStack.pop()];
        }
    
        return baseString;
    }
    

    摘录自 《学习JavaScript数据结构与算法》

    相关文章

      网友评论

          本文标题:JS 用栈的方式实现十进制对任一进制的转换

          本文链接:https://www.haomeiwen.com/subject/zbbzwhtx.html