From 5ec422e12d8a8901ed9e3d123b36ad88dcdb02d6 Mon Sep 17 00:00:00 2001 From: Christian Bender Date: Fri, 30 Mar 2018 16:03:13 +0200 Subject: [PATCH] more objectoriented --- Data Structures/Queue/Queue.js | 41 ++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/Data Structures/Queue/Queue.js b/Data Structures/Queue/Queue.js index e401b7ae7..448ec759e 100644 --- a/Data Structures/Queue/Queue.js +++ b/Data Structures/Queue/Queue.js @@ -7,43 +7,50 @@ //Functions: enqueue, dequeue, peek, view, length -var Queue = function() { +var Queue = (function () { - //This is the array representation of the queue - this.queue = []; + function Queue() { + + //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; } + //Add a value to the end of the queue + Queue.prototype.enqueue = function (item) { + this.queue[this.queue.length] = item; + }; + //Removes the value at the front of the queue - this.dequeue = function() { + Queue.prototype.dequeue = function () { if (this.queue.length === 0) { - return "Queue is Empty"; + throw "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() { + Queue.prototype.length = function () { return this.queue.length; - } + }; //Return the item at the front of the queue - this.peek = function() { + Queue.prototype.peek = function () { return this.queue[0]; - } + }; //List all the items in the queue - this.view = function() { + Queue.prototype.view = function () { console.log(this.queue); - } -} + }; + + return Queue; + +}()); //Implementation var myQueue = new Queue(); @@ -72,4 +79,4 @@ for (var i = 0; i < 5; i++) { myQueue.view(); } -console.log(myQueue.dequeue()); \ No newline at end of file +//console.log(myQueue.dequeue()); \ No newline at end of file