From 24a65b09206bf8e2bdf923ac94ac2a6779e77c47 Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 09:56:28 +0530 Subject: [PATCH 1/9] TreeTraversal added inOrder, preOrder and postOrder functions are added with O(n) time and O(n) space complexity --- Data-Structures/Tree/TreeTraversal/Test.js | 24 ++++++++++++++ .../Tree/TreeTraversal/TreeTraversal.js | 31 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 Data-Structures/Tree/TreeTraversal/Test.js create mode 100644 Data-Structures/Tree/TreeTraversal/TreeTraversal.js diff --git a/Data-Structures/Tree/TreeTraversal/Test.js b/Data-Structures/Tree/TreeTraversal/Test.js new file mode 100644 index 0000000000..30009b6f38 --- /dev/null +++ b/Data-Structures/Tree/TreeTraversal/Test.js @@ -0,0 +1,24 @@ + +const program = require('./program'); +const chai = require('chai'); + +class BST { + constructor(value) { + this.value = value; + this.left = null; + this.right = null; + } +} + +it('Test Case #1', function () { + const root = new BST(10); + root.left = new BST(5); + root.left.left = new BST(2); + root.left.left.left = new BST(1); + root.left.right = new BST(5); + root.right = new BST(15); + root.right.right = new BST(22); + chai.expect(program.inOrderTraverse(root, [])).to.deep.equal([1, 2, 5, 5, 10, 15, 22]); + chai.expect(program.preOrderTraverse(root, [])).to.deep.equal([10, 5, 2, 1, 5, 15, 22]); + chai.expect(program.postOrderTraverse(root, [])).to.deep.equal([1, 2, 5, 5, 22, 15, 10]); +}); diff --git a/Data-Structures/Tree/TreeTraversal/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal/TreeTraversal.js new file mode 100644 index 0000000000..8843f3e690 --- /dev/null +++ b/Data-Structures/Tree/TreeTraversal/TreeTraversal.js @@ -0,0 +1,31 @@ +//O(n) Time and O(n) Space Complexity + +function inOrderTraverse(tree, array) { + if(tree !== null){ + inOrderTraverse(tree.left, array); + array.push(tree.value); + inOrderTraverse(tree.right, array); + } + return array; + } + + function preOrderTraverse(tree, array) { + if(tree != null){ + array.push(tree.value); + preOrderTraverse(tree.left, array); + preOrderTraverse(tree.right, array); + } + } + + function postOrderTraverse(tree, array) { + if(tree != null){ + postOrderTraverse(tree.left, array); + postOrderTraverse(tree.right, array); + array.push(tree.value); + } + } + + exports.inOrderTraverse = inOrderTraverse; + exports.preOrderTraverse = preOrderTraverse; + exports.postOrderTraverse = postOrderTraverse; + \ No newline at end of file From fe5c5f8a13c8b77569beee6ce8d45ac88001499d Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 10:10:15 +0530 Subject: [PATCH 2/9] Update TreeTraversal.js --- .../Tree/TreeTraversal/TreeTraversal.js | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/Data-Structures/Tree/TreeTraversal/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal/TreeTraversal.js index 8843f3e690..bb5c928c14 100644 --- a/Data-Structures/Tree/TreeTraversal/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal/TreeTraversal.js @@ -1,31 +1,29 @@ //O(n) Time and O(n) Space Complexity function inOrderTraverse(tree, array) { - if(tree !== null){ - inOrderTraverse(tree.left, array); - array.push(tree.value); - inOrderTraverse(tree.right, array); - } - return array; + if (tree !== null) { + inOrderTraverse(tree.left, array); + array.push(tree.value); + inOrderTraverse(tree.right, array); } - - function preOrderTraverse(tree, array) { - if(tree != null){ - array.push(tree.value); - preOrderTraverse(tree.left, array); - preOrderTraverse(tree.right, array); - } + return array; +} +function preOrderTraverse(tree, array) { + if (tree != null) { + array.push(tree.value); + preOrderTraverse(tree.left, array); + preOrderTraverse(tree.right, array); } - - function postOrderTraverse(tree, array) { - if(tree != null){ - postOrderTraverse(tree.left, array); - postOrderTraverse(tree.right, array); - array.push(tree.value); - } +} + +function postOrderTraverse(tree, array) { + if (tree != null) { + postOrderTraverse(tree.left, array); + postOrderTraverse(tree.right, array); + array.push(tree.value); } - - exports.inOrderTraverse = inOrderTraverse; - exports.preOrderTraverse = preOrderTraverse; - exports.postOrderTraverse = postOrderTraverse; - \ No newline at end of file +} + +exports.inOrderTraverse = inOrderTraverse; +exports.preOrderTraverse = preOrderTraverse; +exports.postOrderTraverse = postOrderTraverse; From 5a099d35b9ae26c01054e0ffcb8972ec37750e2b Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 16:09:22 +0530 Subject: [PATCH 3/9] Updated TreeTraversal --- .../Tree/{TreeTraversal => }/TreeTraversal.js | 4 ++-- Data-Structures/Tree/TreeTraversal/Test.js | 24 ------------------- 2 files changed, 2 insertions(+), 26 deletions(-) rename Data-Structures/Tree/{TreeTraversal => }/TreeTraversal.js (93%) delete mode 100644 Data-Structures/Tree/TreeTraversal/Test.js diff --git a/Data-Structures/Tree/TreeTraversal/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal.js similarity index 93% rename from Data-Structures/Tree/TreeTraversal/TreeTraversal.js rename to Data-Structures/Tree/TreeTraversal.js index bb5c928c14..1fb137bea5 100644 --- a/Data-Structures/Tree/TreeTraversal/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal.js @@ -9,7 +9,7 @@ function inOrderTraverse(tree, array) { return array; } function preOrderTraverse(tree, array) { - if (tree != null) { + if (tree !== null) { array.push(tree.value); preOrderTraverse(tree.left, array); preOrderTraverse(tree.right, array); @@ -17,7 +17,7 @@ function preOrderTraverse(tree, array) { } function postOrderTraverse(tree, array) { - if (tree != null) { + if (tree !== null) { postOrderTraverse(tree.left, array); postOrderTraverse(tree.right, array); array.push(tree.value); diff --git a/Data-Structures/Tree/TreeTraversal/Test.js b/Data-Structures/Tree/TreeTraversal/Test.js deleted file mode 100644 index 30009b6f38..0000000000 --- a/Data-Structures/Tree/TreeTraversal/Test.js +++ /dev/null @@ -1,24 +0,0 @@ - -const program = require('./program'); -const chai = require('chai'); - -class BST { - constructor(value) { - this.value = value; - this.left = null; - this.right = null; - } -} - -it('Test Case #1', function () { - const root = new BST(10); - root.left = new BST(5); - root.left.left = new BST(2); - root.left.left.left = new BST(1); - root.left.right = new BST(5); - root.right = new BST(15); - root.right.right = new BST(22); - chai.expect(program.inOrderTraverse(root, [])).to.deep.equal([1, 2, 5, 5, 10, 15, 22]); - chai.expect(program.preOrderTraverse(root, [])).to.deep.equal([10, 5, 2, 1, 5, 15, 22]); - chai.expect(program.postOrderTraverse(root, [])).to.deep.equal([1, 2, 5, 5, 22, 15, 10]); -}); From c47af1c7675713e86f9a62a6bd5df5a71aebe6ea Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 18:41:29 +0530 Subject: [PATCH 4/9] Standard --fix is done --- Data-Structures/Tree/TreeTraversal.js | 35 ++++++++++++++------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/Data-Structures/Tree/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal.js index 1fb137bea5..11591917d2 100644 --- a/Data-Structures/Tree/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal.js @@ -1,29 +1,30 @@ -//O(n) Time and O(n) Space Complexity +/* eslint no-use-before-define: 0 */ // --> OFF +// O(n) Time and O(n) Space Complexity -function inOrderTraverse(tree, array) { +function inOrderTraverse (tree, array) { if (tree !== null) { - inOrderTraverse(tree.left, array); - array.push(tree.value); - inOrderTraverse(tree.right, array); + inOrderTraverse(tree.left, array) + array.push(tree.value) + inOrderTraverse(tree.right, array) } - return array; + return array } -function preOrderTraverse(tree, array) { +function preOrderTraverse (tree, array) { if (tree !== null) { - array.push(tree.value); - preOrderTraverse(tree.left, array); - preOrderTraverse(tree.right, array); + array.push(tree.value) + preOrderTraverse(tree.left, array) + preOrderTraverse(tree.right, array) } } -function postOrderTraverse(tree, array) { +function postOrderTraverse (tree, array) { if (tree !== null) { - postOrderTraverse(tree.left, array); - postOrderTraverse(tree.right, array); - array.push(tree.value); + postOrderTraverse(tree.left, array) + postOrderTraverse(tree.right, array) + array.push(tree.value) } } -exports.inOrderTraverse = inOrderTraverse; -exports.preOrderTraverse = preOrderTraverse; -exports.postOrderTraverse = postOrderTraverse; +exports.inOrderTraverse = inOrderTraverse +exports.preOrderTraverse = preOrderTraverse +exports.postOrderTraverse = postOrderTraverse From 99bc566114e3ae234f9f91f23cb0491e048894ff Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 19:39:00 +0530 Subject: [PATCH 5/9] To Ecma Script --- Data-Structures/Tree/TreeTraversal.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Data-Structures/Tree/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal.js index 11591917d2..dce9ad5229 100644 --- a/Data-Structures/Tree/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal.js @@ -1,7 +1,7 @@ /* eslint no-use-before-define: 0 */ // --> OFF // O(n) Time and O(n) Space Complexity -function inOrderTraverse (tree, array) { +inOrderTraverse=function (tree, array) { if (tree !== null) { inOrderTraverse(tree.left, array) array.push(tree.value) @@ -9,7 +9,7 @@ function inOrderTraverse (tree, array) { } return array } -function preOrderTraverse (tree, array) { +preOrderTraverse =function (tree, array) { if (tree !== null) { array.push(tree.value) preOrderTraverse(tree.left, array) @@ -17,7 +17,7 @@ function preOrderTraverse (tree, array) { } } -function postOrderTraverse (tree, array) { +postOrderTraverse =function(tree, array) { if (tree !== null) { postOrderTraverse(tree.left, array) postOrderTraverse(tree.right, array) @@ -25,6 +25,7 @@ function postOrderTraverse (tree, array) { } } -exports.inOrderTraverse = inOrderTraverse -exports.preOrderTraverse = preOrderTraverse -exports.postOrderTraverse = postOrderTraverse +export {preOrderTraverse}; +export{inOrderTraverse}; +export{postOrderTraverse} + From f994c458d1926a0f0006695aedd0a759c045cb88 Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 19:46:38 +0530 Subject: [PATCH 6/9] Formatted --- Data-Structures/Tree/TreeTraversal.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Data-Structures/Tree/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal.js index dce9ad5229..738ac31aee 100644 --- a/Data-Structures/Tree/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal.js @@ -1,7 +1,7 @@ /* eslint no-use-before-define: 0 */ // --> OFF // O(n) Time and O(n) Space Complexity -inOrderTraverse=function (tree, array) { +function inOrderTraverse (tree, array) { if (tree !== null) { inOrderTraverse(tree.left, array) array.push(tree.value) @@ -9,7 +9,7 @@ inOrderTraverse=function (tree, array) { } return array } -preOrderTraverse =function (tree, array) { +function preOrderTraverse (tree, array) { if (tree !== null) { array.push(tree.value) preOrderTraverse(tree.left, array) @@ -17,7 +17,7 @@ preOrderTraverse =function (tree, array) { } } -postOrderTraverse =function(tree, array) { +function postOrderTraverse (tree, array) { if (tree !== null) { postOrderTraverse(tree.left, array) postOrderTraverse(tree.right, array) @@ -25,7 +25,6 @@ postOrderTraverse =function(tree, array) { } } -export {preOrderTraverse}; -export{inOrderTraverse}; -export{postOrderTraverse} - +export { preOrderTraverse } +export { inOrderTraverse } +export { postOrderTraverse } From 03f9f823ec1eb31bda04655091c527a1ad890d3a Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 19:51:48 +0530 Subject: [PATCH 7/9] removed --- Data-Structures/Tree/TreeTraversal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data-Structures/Tree/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal.js index 738ac31aee..930282475e 100644 --- a/Data-Structures/Tree/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal.js @@ -1,4 +1,4 @@ -/* eslint no-use-before-define: 0 */ // --> OFF + // O(n) Time and O(n) Space Complexity function inOrderTraverse (tree, array) { From c74a408f34afd322aa6ae7cb36d5b8df07fa3a7f Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月16日 19:57:04 +0530 Subject: [PATCH 8/9] updated --- Data-Structures/Tree/TreeTraversal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data-Structures/Tree/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal.js index 930282475e..1b41479259 100644 --- a/Data-Structures/Tree/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal.js @@ -1,4 +1,3 @@ - // O(n) Time and O(n) Space Complexity function inOrderTraverse (tree, array) { @@ -9,6 +8,7 @@ function inOrderTraverse (tree, array) { } return array } + function preOrderTraverse (tree, array) { if (tree !== null) { array.push(tree.value) From b6ae0bd00d13cd91e38dc47f3a3f7a1c22a106d8 Mon Sep 17 00:00:00 2001 From: Ram Munde Date: 2022年7月22日 23:13:39 +0530 Subject: [PATCH 9/9] update --- Data-Structures/Tree/TreeTraversal.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Data-Structures/Tree/TreeTraversal.js b/Data-Structures/Tree/TreeTraversal.js index 1b41479259..296bfdb5ff 100644 --- a/Data-Structures/Tree/TreeTraversal.js +++ b/Data-Structures/Tree/TreeTraversal.js @@ -15,6 +15,7 @@ function preOrderTraverse (tree, array) { preOrderTraverse(tree.left, array) preOrderTraverse(tree.right, array) } + return array } function postOrderTraverse (tree, array) { @@ -23,8 +24,7 @@ function postOrderTraverse (tree, array) { postOrderTraverse(tree.right, array) array.push(tree.value) } + return array } -export { preOrderTraverse } -export { inOrderTraverse } -export { postOrderTraverse } +export { inOrderTraverse, preOrderTraverse, postOrderTraverse }

AltStyle によって変換されたページ (->オリジナル) /