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();