JavaScript 数据结构(2):队列 Queue

原创 2015年11月18日 17:45:25
/**
 * 队列(Queue)
 * 先进先出
 */

// Array 实现
/*function Queue () {
    var arr = [];

    return {
        insert: function(item){     // 入列
            arr.push(item);
        },
        remove: function(){     // 出列
            return arr.shift();
        },
        peek: function(){       // 查看队头元素
            return arr[0];
        },
        isEmpty: function(){        // 队列是否为空
            return arr.length === 0;
        },
        size: function(){       // 队列中元素数目
            return arr.length;
        }
    };
}*/


// Object 实现
function Queue () {
    var queue = {},
        front = 0,
        end = -1,
        size = 0;

    return {
        insert: function(item){     // 入列
            queue[++end] = item;
            size++;
        },
        remove: function(){     // 出列
            if(size == 0){
                return undefined;
            }else{
                var frontItem = queue[front++];
                size--;
                return frontItem;
            }
        },
        peek: function(){       // 查看队头元素
            return queue[front];
        },
        isEmpty: function(){        // 队列是否为空
            return size === 0;
        },
        size: function(){       // 队列中元素数目
            return size;
        }
    };
}


// test
var queue = new Queue();

console.log('Is empty? ' + queue.isEmpty());
console.log('size: ' + queue.size());

queue.insert(1);
queue.insert(2);
console.log('size: ' + queue.size());

console.log('peek: ' + queue.peek());
console.log('remove: ' + queue.remove());
console.log('peek: ' + queue.peek());


console.log('Is empty? ' + queue.isEmpty());
console.log('size: ' + queue.size());
版权声明:本文为博主原创文章,未经博主允许不得转载。

数据结构-队列(queue)

队列(queue)是一种采用先进先出(FIFO)策略的抽象数据结构,它的想法来自于生活中排队的策略。顾客在付款结账的时候,按照到来的先后顺序排队结账,先来的顾客先结账,后来的顾客后结账。队列实现同栈的...
  • juanqinyang
  • juanqinyang
  • 2016年05月09日 16:51
  • 4945

结构体 queue(队列FIFO)入门

队列:一种特殊的线性表,是一种先进先出(First In First Out)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,...
  • fmmh233
  • fmmh233
  • 2016年11月16日 08:02
  • 1599

java数据结构与算法之(Queue)队列设计与实现

队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列的简单应用 优先队列的设置与实现...
  • javazejian
  • javazejian
  • 2016年12月04日 10:05
  • 11418

数据结构 严蔚敏 队列 queue

  • 2010年12月05日 20:31
  • 4KB
  • 下载

JavaScript数据结构(2):栈与队列

栈和队列是web开发中最常用的两种数据结构。绝大多数用户,甚至包括web开发人员,都不知道这个惊人的事实。如果你是一个程序员,那么请听我讲两个启发性的例子:使用堆栈来组织数据,来实现文本编辑器的“撤消...
  • eyeofangel
  • eyeofangel
  • 2017年07月25日 18:06
  • 465

javascript数据结构4-队列2-基数排序

第一次按个位上的数字进行排序,第二次按十位上的数字进行排序 排序:91, 46, 85, 15, 92, 35, 31, 22 经过基数排序第一次扫描之后,数字被分配到如下盒子中:Bin 0: B...
  • future_todo
  • future_todo
  • 2016年10月09日 11:33
  • 214

Java数据结构与算法之Queue队列

目录: 1.队列概述 2.队列分类 3.数组实现自定义队列 4.链表实现自定义队列 1.队列概述 队列是一种特殊的线性表,它可以通过数组与链表两种方式实现,它与单链表和数组的区别是它只能从队尾添加元...
  • qq_28057577
  • qq_28057577
  • 2016年10月04日 15:57
  • 836

java数据结构与算法之(Queue)队列设计与实现

队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列的简单应用 优先队列的设置与实现...
  • javazejian
  • javazejian
  • 2016年12月04日 10:05
  • 11418

java实现数据结构——栈Stack与队列Queue

栈(Stack)作为一个先进后出(FILO) 的线性结构,只支持在栈顶的插入和弹出。 队列(Queue)作为一个先进先出(FIFO) 的线性结构,支持在队首获取元素,在对尾插入元素。   栈的实...
  • chengmaoning
  • chengmaoning
  • 2013年03月20日 10:42
  • 612

数据结构之队列queue

C++数据结构之队列queue 与栈相反,队列是一种先进先出(FIFO)的线性表,只允许在表的一端插入,在另一端删除。允许插入的一端叫队尾,允许删除 的一端叫队头。比较典型的例子有日常生活中...
  • weixin_39684284
  • weixin_39684284
  • 2017年12月10日 22:51
  • 18
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript 数据结构(2):队列 Queue
举报原因:
原因补充:

(最多只允许输入30个字)