queue data structure

by manappa

JavaScript

function Queue(){
  var collection = [];
  this.print = function (){
    console.log(collection);
  }
  this.enqueue = function (element){
    collection.push(element);
  }
  this.dequeue = function(){
    return collection.shift();
  }
  this.front = function(){
    return collection[0];
  }
  this.size = function(){
    return collection.length;
  }
  this.isEmpty = function(){
    return (collection.length == 0);
  }
}
var queue = new Queue();
queue.enqueue("a");
queue.enqueue("b");
queue.dequeue();
queue.dequeue();
console.log(queue.front());
console.log(queue.front());
console.log(queue.size());
console.log(queue.isEmpty());

function PriorityQueue(){
  var collection = [];
  this.print = function (){
    console.log(collection);
  }
  this.enqueue = function (element){
    if(this.isEmpty(collection)){
      collection.push(element);
    }else{
      var added = false;
      for(var i=0;i<=collection.length;i++){
        console.log(element);                             console.log(collection);
        if(element[1] < collection[i][1]){
          collection.splice(i,0,element)
          added = true;
          break;
        }
      }
      if(!added){
        collection.added(element);
      }
    }
  }
  this.dequeue = function(){
    var value = collection.shift();
    return value[0];
  }
  this.front = function(){
    return collection[0];
  }
  this.size = function(){
    return collection.length;
  }
  this.isEmpty = function(){
    return (collection.length == 0);
  }
}

var pq = new PriorityQueue();
pq.enqueue(["aa",4]);
pq.enqueue(["bbb",3]);
pq.enqueue(["ccc",2]);
pq.enqueue(["dddd",1]);
pq.dequeue();
pq.print();