zoukankan      html  css  js  c++  java
  • 跟我一起创建队列

    function Queue(){
        var items = [];
        this.enqueue = function (element){
            items.push(element);//向队列尾部添加一个或者多个新的项
        }
        this.dequeue = function(){
            return items.shift();//移除队列的第一个项,并返回被移除的元素
        }
        this.front = function(){
            return items[0]//返回队列中的第一个元素
        }
        this.isEmpty = function(){
            items = [];//队列中不包含任何元素
        }
        this.size = function(){
            return items.length;//返回队列中包含的元素的个数
        }
        this.print = function(){
            console.log(items.toString());//打印队列中元素的方法
        }
    }
    var queue = new Queue();
    console.log(queue.isEmpty());
    queue.enqueue('bob');
    queue.print();
    console.log(queue.size());
    console.log(queue.isEmpty());
    queue.dequeue();
    

    队列的原理是先进先出,在计算机科学及我们的生活中大量应用。
    如下为优先队列

    function PriorityQueue(){
        var items = [];
        function QueueElement (element,priority){
            this.element = element;//元素
            this.priority = priority;//优先级
        }
        this.enqueue = function(element,priority){
            var queueElement = new QueueElement(element,priority);
            if(this.isEmpty()){
                items.push(queueElement);
            }else{
                var added = false;
                for(var i=0;i<items.length;i++){
                    if(queueElement.priority<items[i].priority){
                        items.splice(i,0,queueElement);
                        add = true;
                        break;
                    }
                }
            }
            if(!added){
                items.push(queueElement);
            }
        }
    }
    var priorityQueue = new PriorityQueue();
    priorityQueue.enqueue("John",2);
    priorityQueue.enqueue("jack",1);
    priorityQueue.enqueue("cidy",1);
    priorityQueue.print();
    
  • 相关阅读:
    Linux中批量添加文件和修改文件小笔记
    scp 命令快速使用讲解
    使用Apache Spark 对 mysql 调优 查询速度提升10倍以上
    阿里云CentOS-7.2安装mysql
    yum安装网络配置图形界面
    忘记了root密码,如何进入系统?
    Linux学习之竿头直上
    Linux命令之初出茅庐
    Linux学习之要点必备
    阿里云CentOS7.2服务器的安装
  • 原文地址:https://www.cnblogs.com/smart-girl/p/11343530.html
Copyright © 2011-2022 走看看