美文网首页
队列 --js实现

队列 --js实现

作者: 安石0 | 来源:发表于2018-06-05 22:52 被阅读0次

队列是遵循FIFO先进先出原则的一组有序的项,队列在尾部添加新元素,并在顶部移除元素,最新添加的元素排列在队尾。

function Queue () {
  let items = []
  //队尾添加项
  this.enqueue=function(v){
    items.push(v)   
  }
  //移除队列第一项
  this.dequeue=function(){
    return items.shift()    
  }
  //查看队列第一项
  this.front=function(){
    return items[0]
  }
  //检查是否为空
  this.isEmpty=function(){
    return items.length==0
  }
  //返回队列长度
  this.size=function(){
    return items.length
  } 
  //打印队列
  this.print=function(){
   console.log(items.toString())
}
}
应用1:优先队列

现实中的例子,头等舱的人比经济舱的人先上飞机

//最小优先队列
function PriorityQueue(){
  let items=[]
  function QueueElement(element,priority){
    this.element=element
    this.priority=priority
   }
  this.enqueue=function(element,priority){
    let queueElement=new QueueElement(element,priority)
    let add=false
    for(let i=0;i<items.length;i++){
      if(queueElement.priority<items[i].priority){
        items.splice(i,0,queueElement)//确保按照优先级排序,之前插入的元素已经的按序排列的
        add=true
        break
      }
    }
   if(!add){
     items.push(queueElement)//优先级不满足上面的条件则添加在队尾
    }
  }
  this.print=function(){
    for(let i=0;i<items.length;i++){
      console.log(`${items[i].element}-${items[i].priority}`)
    }
  }
    this.front=function(){
    return items[0]
  }
  //检查是否为空
  this.isEmpty=function(){
    return items.length==0
  }
  //返回队列长度
  this.size=function(){
    return items.length
  } 
}

队列应用2:击鼓传花

击鼓传花:百度百科

相关文章

  • js实现数据结构队列

    根据js Array实现简单的单向队列

  • 实现一个简单的js队列

    实现一个简单的js队列

  • 队列 --js实现

    队列是遵循FIFO先进先出原则的一组有序的项,队列在尾部添加新元素,并在顶部移除元素,最新添加的元素排列在队尾。 ...

  • JS实现队列

    队列 队列(queue)是一种先进先出的、操作受限的线性表。 划重点!先进先出!如果要向队列增加成员时,应该在队伍...

  • 数组

    原文JS中的数组提供了四个操作,以便让我们实现队列与堆栈!小理论:队列:先进先出堆栈:后进先出实现队列的方法:sh...

  • 专题规划

    OC与JS 中数据类型 的比较 OC与JS 中多线程 的实现,异步的实现,串行与并行,队列的概念

  • JS实现环形队列

    GitHub: https://github.com/BadWaka/data-structure-algorit...

  • js 实现队列结构

    //队列 FIFO function Queue() { this.items = []; } ...

  • javascript桥接模式(1)-队列数据结构

    根据书上例子的实际要求,涉及到js队列的问题。所以先把js中队列的具体实现数据结构贴出来。具体参考《学习javas...

  • 2. 队列

    1. 队列简介(先进先出) 队列是一个先进先出的数据结构; JS 中没有队列,但是可以用 Array 实现栈中的所...

网友评论

      本文标题:队列 --js实现

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