小奋斗 - 轻松学习从此开始!
IT小奋斗群 QQ群:62017228

Javascript数据结构(栈和队列)和算法

一、栈

javascript实现栈的数据结构(借助javascript数组原生的方法即可)

//使用javascript来实现栈的数据结构
var Stack={
    //不需要外界传参进行初始化,完全可以定义为一个属性
    items:[],
    push:function(item){
        this.items.push(item);
    },
    pop:function(){
        return this.items.pop();
    },
    peek:function(){
        return this.items[items.length-1];
    },
    isEmpty:function(){
        return this.items.length===0;
    },
    size:function(){
        return this.items.length;
    },
    clear:function(){
        this.items=[];
    },
    print:function(){
        console.log(this.items.toString());
    }
};

javascript栈的应用案例(十进制和其他进制的转换)

//基于栈的数据结构实现进制转换,比如将十进制转换为2进制
function baseConvert(number,base){
    var result=Object.create(Stack),
        rem,
        baseString='',
        digits='0123456789ABCDEF',
        decNumber=number;
    while(decNumber>0){
        rem=Math.floor(decNumber%base);
        result.push(rem);         
        decNumber=Math.floor(decNumber/base);
    }
    
    while(!result.isEmpty()){
        baseString+=digits[result.pop()];
    }
    return baseString;
}

console.log(baseConvert(100345,2));//输出11000011111111001
console.log(baseConvert(100345,8));//输出303771
console.log(baseConvert(100345,16));//输出187F9
进制转换

二、队列

javascript实现队列的数据结构

//实现队列
var Queue={
    item:[],
    enqueue:function(item){
        this.items.push(item);
    },
    dequeue:function(){
        return this.items.shift();
    },
    isEmpty:function(){
        return this.items.length===0;
    },
    front:function(){
        return this.items[0];
    },
    clear:function(){
        this.items=[];
    },
    size:function(){
        return this.items.length;
    }
};
队列

我来评几句
登录后评论

已发表评论数(0)