JavaScript实现队列

队列是一种先进先出的数据结构,只能从队列的尾部插入元素,首部删除元素。队列这一数据结构在很多地方被用到,比如提交操作系统执行的一些列进程、打印任务池等。以下是用JavaScript实现队列。

    

在一般情况下, 从队列中删除的元素, 一定是率先入队的元素。 但是也有一些使用队列的
应用, 在删除元素时不必遵守先进先出的约定。 这种应用, 需要使用一个叫做优先队列的
数据结构来进行模拟。

        //测试优先级队列
        function infoObj(name,code) {
            this.name=name;
            this.code=code;//优先级,数值越小,优先级越高
        }
        var queues2=new Queue();
        var info1=new infoObj("a",5);
        queues2.enqueue(info1);
        var info2=new infoObj("b",4);
        queues2.enqueue(info2);
        var info3=new infoObj("c",6);
        queues2.enqueue(info3);
        queues2.enqueue(new infoObj("d",1));
        queues2.enqueue(new infoObj("e",1));

        console.log(queues2.toStringObj());
        console.log("第一次出队后");
        queues2.dequeue2();
        console.log(queues2.toStringObj());
        console.log("第二次出队后");
        queues2.dequeue2();
        console.log(queues2.toStringObj());
        console.log("第三次出队后");
        queues2.dequeue2();
        console.log(queues2.toStringObj());
        console.log("第四次出队后");
        queues2.dequeue2();
        console.log(queues2.toStringObj());

结果如下:
JavaScript实现队列_第1张图片
使用队列,还可以实现基数排序,代码如下

		//将要排序的数字按照个位数或者十位数插入队列中
        function distribute(nums,digit,queuesArr,n) {
            if(digit===1){
                for(var i=0;i

结果如下:
JavaScript实现队列_第2张图片
还有一个应用是模拟跳方块舞的人。当
男男女女来到舞池, 他们按照自己的性别排成两队。 当舞池中有地方空出来时, 选两个队
列中的第一个人组成舞伴。 他们身后的人各自向前移动一位, 变成新的队首。 当一对舞伴
迈入舞池时, 主持人会大声喊出他们的名字。 当一对舞伴走出舞池, 且两排队伍中有任意
一队没人时, 主持人也会把这个情况告诉大家。实现代码如下:

 	 //模拟方块舞
        //舞者信息
        var dancerInfo=["F AA","M BB","F CC","M DD","F EE","M FF","M GG"];
        //将舞者信息存储在对象中,并将对象存入队列中
        function Dancer(name,sex){
            this.name=name;
            this.sex=sex;
        }

        function getDancer(maleDancers,femaleDancers) {
            for(var i=0;i

结果如下:
JavaScript实现队列_第3张图片

你可能感兴趣的:(JavaScript实现队列)