Skip to content

Added Queue Data Structure #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 18, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions Data Structures/Queue/Queue.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
/* Queue
* A Queue is a data structure that allows you to add an element to the end of
* a list and remove the item at the front. A queue follows a "First In First Out"
* system, where the first item to enter the queue is the first to be removed. This
* implementation uses an array to store the queue.
*/

//Functions: enqueue, dequeue, peek, view, length

var Queue = function() {

//This is the array representation of the queue
this.queue = [];

//Add a value to the end of the queue
this.enqueue = function(item) {
this.queue[this.queue.length] = item;
}

//Removes the value at the front of the queue
this.dequeue = function() {
if (this.queue.length === 0) {
return "Queue is Empty";
}

var result = this.queue[0];
this.queue.splice(0, 1); //remove the item at position 0 from the array

return result;
}

//Return the length of the queue
this.length = function() {
return this.queue.length;
}

//Return the item at the front of the queue
this.peek = function() {
return this.queue[0];
}

//List all the items in the queue
this.view = function() {
console.log(this.queue);
}
}

//Implementation
var myQueue = new Queue();

myQueue.enqueue(1);
myQueue.enqueue(5);
myQueue.enqueue(76);
myQueue.enqueue(69);
myQueue.enqueue(32);
myQueue.enqueue(54);

myQueue.view();

console.log("Length: " + myQueue.length());
console.log("Front item: " + myQueue.peek());
console.log("Removed " + myQueue.dequeue() + " from front.");
console.log("New front item: " + myQueue.peek());
console.log("Removed " + myQueue.dequeue() + " from front.");
console.log("New front item: " + myQueue.peek());
myQueue.enqueue(55);
console.log("Inserted 55");
console.log("New front item: " + myQueue.peek());

for (var i = 0; i < 5; i++) {
myQueue.dequeue();
myQueue.view();
}

console.log(myQueue.dequeue());