diff --git a/src/data-structures/doubly-linked-list/DoublyLinkedList.js b/src/data-structures/doubly-linked-list/DoublyLinkedList.js index 6c3306b6..d576f360 100644 --- a/src/data-structures/doubly-linked-list/DoublyLinkedList.js +++ b/src/data-structures/doubly-linked-list/DoublyLinkedList.js @@ -213,6 +213,10 @@ export default class DoublyLinkedList { return nodes; } + size() { + return this.toArray().length; + } + /** * @param {*[]} values - Array of values that need to be converted to linked list. * @return {DoublyLinkedList} diff --git a/src/data-structures/linked-list/LinkedList.js b/src/data-structures/linked-list/LinkedList.js index ba7d0e3e..1d565d7c 100644 --- a/src/data-structures/linked-list/LinkedList.js +++ b/src/data-structures/linked-list/LinkedList.js @@ -233,6 +233,13 @@ export default class LinkedList { return nodes; } + + /** + * @return {number} + */ + size() { + return this.toArray().length; + } /** * @param {function} [callback] diff --git a/src/data-structures/queue/Queue.js b/src/data-structures/queue/Queue.js index 64e646fc..503387bb 100644 --- a/src/data-structures/queue/Queue.js +++ b/src/data-structures/queue/Queue.js @@ -47,6 +47,14 @@ export default class Queue { return removedHead ? removedHead.value : null; } + /** + * @return {number} + */ + size() { + return this.linkedList.size(); + } + + /** * @param [callback] * @return {string} diff --git a/src/data-structures/stack/Stack.js b/src/data-structures/stack/Stack.js index 8d061412..2ae54073 100644 --- a/src/data-structures/stack/Stack.js +++ b/src/data-structures/stack/Stack.js @@ -48,6 +48,13 @@ export default class Stack { return removedHead ? removedHead.value : null; } + /** + * @return {number} + */ + size() { + return this.linkedList.size(); + } + /** * @return {*[]} */