From 2e49da2182afe9343d6e6fa69beced763e0843d0 Mon Sep 17 00:00:00 2001 From: Gurneet Singh Date: Sat, 8 Oct 2022 23:49:05 +0530 Subject: [PATCH 01/23] Binary Search Tree Inorder Traversal --- .../inorder_tree_traversal_2022.py | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 data_structures/binary_tree/inorder_tree_traversal_2022.py diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py new file mode 100644 index 000000000000..03c253053e3a --- /dev/null +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -0,0 +1,70 @@ +""" +Illustrate how to implement inorder traversal in binary search tree. +Author: Gurneet Singh +https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/ +""" + +''' +5 items had no tests: + __main__ + __main__.BinaryTreeNode + __main__.BinaryTreeNode.__init__ + __main__.inorder + __main__.insert +0 tests in 5 items. +0 passed and 0 failed. +Test passed. +Printing values of binary search tree in Inorder Traversal. +6 +10 +14 +15 +20 +25 +60 +''' +class BinaryTreeNode: + '''Defining the structure of BinaryTreeNode''' + def __init__(self, data: int) -> None: + self.data = data + self.left_Child = None + self.right_Child = None + +def insert(node : None , new_Value : int) -> BinaryTreeNode: # if binary search tree is empty, make a new node and declare it as root + if node is None: + node = BinaryTreeNode(new_Value) + return node + + # binary search tree is not empty, so we will insert it into the tree + # if new_Value is less than value of data in node, add it to left subtree and proceed recursively + if new_Value < node.data: + node.left_Child = insert(node.left_Child, new_Value) + else: + # if new_Value is greater than value of data in node, add it to right subtree and proceed recursively + node.right_Child = insert(node.right_Child, new_Value) + return node + + +def inorder(node : None) -> None: # if node is None,return + if node == None: + return + # traverse left subtree + inorder(node.left_Child) + # traverse current node + print(node.data) + # traverse right subtree + inorder(node.right_Child) + + +if __name__ == "__main__": + import doctest + doctest.testmod() + root = insert(None, 15) + insert(root, 10) + insert(root, 25) + insert(root, 6) + insert(root, 14) + insert(root, 20) + insert(root, 60) + print("Printing values of binary search tree in Inorder Traversal.") + inorder(root) \ No newline at end of file From 7ca8aa7f01f10d91d8fca7779afcdf5c94bfa1e6 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Sat, 8 Oct 2022 18:19:46 +0000 Subject: [PATCH 02/23] updating DIRECTORY.md --- DIRECTORY.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/DIRECTORY.md b/DIRECTORY.md index 64e9d5333a2f..f66ec3766616 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -152,6 +152,7 @@ * [Binary Tree Mirror](data_structures/binary_tree/binary_tree_mirror.py) * [Binary Tree Traversals](data_structures/binary_tree/binary_tree_traversals.py) * [Fenwick Tree](data_structures/binary_tree/fenwick_tree.py) + * [Inorder Tree Traversal 2022](data_structures/binary_tree/inorder_tree_traversal_2022.py) * [Lazy Segment Tree](data_structures/binary_tree/lazy_segment_tree.py) * [Lowest Common Ancestor](data_structures/binary_tree/lowest_common_ancestor.py) * [Maximum Fenwick Tree](data_structures/binary_tree/maximum_fenwick_tree.py) @@ -632,8 +633,9 @@ ## Physics * [Horizontal Projectile Motion](physics/horizontal_projectile_motion.py) - * [Lorenz Transformation Four Vector](physics/lorenz_transformation_four_vector.py) + * [Lorentz Transformation Four Vector](physics/lorentz_transformation_four_vector.py) * [N Body Simulation](physics/n_body_simulation.py) + * [Newtons Law Of Gravitation](physics/newtons_law_of_gravitation.py) * [Newtons Second Law Of Motion](physics/newtons_second_law_of_motion.py) ## Project Euler From f14a543386748803900e3329902929f1547a4bd1 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 8 Oct 2022 18:29:09 +0000 Subject: [PATCH 03/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../inorder_tree_traversal_2022.py | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 03c253053e3a..c486c5bb6f29 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -4,7 +4,7 @@ https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/ """ -''' +""" 5 items had no tests: __main__ __main__.BinaryTreeNode @@ -22,15 +22,21 @@ 20 25 60 -''' +""" + + class BinaryTreeNode: - '''Defining the structure of BinaryTreeNode''' + """Defining the structure of BinaryTreeNode""" + def __init__(self, data: int) -> None: - self.data = data + self.data = data self.left_Child = None self.right_Child = None -def insert(node : None , new_Value : int) -> BinaryTreeNode: # if binary search tree is empty, make a new node and declare it as root + +def insert( + node: None, new_Value: int +) -> BinaryTreeNode: # if binary search tree is empty, make a new node and declare it as root if node is None: node = BinaryTreeNode(new_Value) return node @@ -45,7 +51,7 @@ def insert(node : None , new_Value : int) -> BinaryTreeNode: # if binary sear return node -def inorder(node : None) -> None: # if node is None,return +def inorder(node: None) -> None: # if node is None,return if node == None: return # traverse left subtree @@ -58,6 +64,7 @@ def inorder(node : None) -> None: # if node is None,return if __name__ == "__main__": import doctest + doctest.testmod() root = insert(None, 15) insert(root, 10) @@ -67,4 +74,4 @@ def inorder(node : None) -> None: # if node is None,return insert(root, 20) insert(root, 60) print("Printing values of binary search tree in Inorder Traversal.") - inorder(root) \ No newline at end of file + inorder(root) From 722f3a05b20ac67a2ce06365929f0594d17d7790 Mon Sep 17 00:00:00 2001 From: Gurneet Singh Date: Sun, 9 Oct 2022 01:08:31 +0530 Subject: [PATCH 04/23] Binary Search Tree Inorder Traversal v2 --- .../inorder_tree_traversal_2022.py | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 03c253053e3a..3cc5567aade3 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -4,7 +4,7 @@ https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/ """ -''' +""" 5 items had no tests: __main__ __main__.BinaryTreeNode @@ -22,42 +22,52 @@ 20 25 60 -''' +""" + + class BinaryTreeNode: - '''Defining the structure of BinaryTreeNode''' + """Defining the structure of BinaryTreeNode""" + def __init__(self, data: int) -> None: - self.data = data - self.left_Child = None - self.right_Child = None + self.data = data + self.left_child = None + self.right_child = None + -def insert(node : None , new_Value : int) -> BinaryTreeNode: # if binary search tree is empty, make a new node and declare it as root +def insert(node: None, new_value: int) -> BinaryTreeNode: + # if binary search tree is empty, make a new node + # and declare it as root if node is None: - node = BinaryTreeNode(new_Value) + node = BinaryTreeNode(new_value) return node - # binary search tree is not empty, so we will insert it into the tree - # if new_Value is less than value of data in node, add it to left subtree and proceed recursively - if new_Value < node.data: - node.left_Child = insert(node.left_Child, new_Value) + # binary search tree is not empty, + # so we will insert it into the tree + # if new_value is less than value of data in node, + # add it to left subtree and proceed recursively + if new_value < node.data: + node.left_child = insert(node.left_child, new_value) else: - # if new_Value is greater than value of data in node, add it to right subtree and proceed recursively - node.right_Child = insert(node.right_Child, new_Value) + # if new_value is greater than value of data in node, + # add it to right subtree and proceed recursively + node.right_child = insert(node.right_child, new_value) return node -def inorder(node : None) -> None: # if node is None,return +def inorder(node: None) -> None: # if node is None,return if node == None: return # traverse left subtree - inorder(node.left_Child) + inorder(node.left_child) # traverse current node print(node.data) # traverse right subtree - inorder(node.right_Child) + inorder(node.right_child) if __name__ == "__main__": import doctest + doctest.testmod() root = insert(None, 15) insert(root, 10) @@ -67,4 +77,4 @@ def inorder(node : None) -> None: # if node is None,return insert(root, 20) insert(root, 60) print("Printing values of binary search tree in Inorder Traversal.") - inorder(root) \ No newline at end of file + inorder(root) From 699b8f1c2608caa9eaf448b1c12adbcc5d34fb6d Mon Sep 17 00:00:00 2001 From: Gurneet Singh Date: Sun, 9 Oct 2022 01:26:41 +0530 Subject: [PATCH 05/23] Binary Search Tree Inorder Traversal --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 3cc5567aade3..2e5fcf031c1f 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -54,9 +54,9 @@ def insert(node: None, new_value: int) -> BinaryTreeNode: return node -def inorder(node: None) -> None: # if node is None,return - if node == None: - return +def inorder(node: None) -> BinaryTreeNode: # if node is None,return + if node is None: + return None # traverse left subtree inorder(node.left_child) # traverse current node From 43f28496f2b9e3d4c5413b8183c87844714dafb9 Mon Sep 17 00:00:00 2001 From: Gurneet Singh Date: Sun, 9 Oct 2022 01:32:18 +0530 Subject: [PATCH 06/23] Binary Search Tree Inorder Traversal --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 2e5fcf031c1f..0a7628c96491 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -34,7 +34,7 @@ def __init__(self, data: int) -> None: self.right_child = None -def insert(node: None, new_value: int) -> BinaryTreeNode: +def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode: # if binary search tree is empty, make a new node # and declare it as root if node is None: From ff71a5b40eef4afb8efd75c1d8d4ca750226065c Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 12:23:51 +0530 Subject: [PATCH 07/23] Update inorder_tree_traversal_2022.py --- .../inorder_tree_traversal_2022.py | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 0a7628c96491..3d18e64f2752 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -3,28 +3,6 @@ Author: Gurneet Singh https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/ """ - -""" -5 items had no tests: - __main__ - __main__.BinaryTreeNode - __main__.BinaryTreeNode.__init__ - __main__.inorder - __main__.insert -0 tests in 5 items. -0 passed and 0 failed. -Test passed. -Printing values of binary search tree in Inorder Traversal. -6 -10 -14 -15 -20 -25 -60 -""" - - class BinaryTreeNode: """Defining the structure of BinaryTreeNode""" @@ -55,6 +33,17 @@ def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode: def inorder(node: None) -> BinaryTreeNode: # if node is None,return + """ + >>> inorder(make()) + 6 + 10 + 14 + 15 + 20 + 25 + 60 + """ + if node is None: return None # traverse left subtree @@ -64,11 +53,8 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return # traverse right subtree inorder(node.right_child) - -if __name__ == "__main__": - import doctest - - doctest.testmod() +def make_tree()-> BinaryTreeNode | None: + root = insert(None, 15) insert(root, 10) insert(root, 25) @@ -76,5 +62,17 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return insert(root, 14) insert(root, 20) insert(root, 60) + return root + +def main(): + # main function + root = make_tree() print("Printing values of binary search tree in Inorder Traversal.") inorder(root) + + +if __name__ == "__main__": + import doctest + + doctest.testmod() + main() From 92ae8d625aee80c433be85b49dbf0feb9c846bb6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 06:54:47 +0000 Subject: [PATCH 08/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../binary_tree/inorder_tree_traversal_2022.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 3d18e64f2752..c9023a23597b 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -3,6 +3,8 @@ Author: Gurneet Singh https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/ """ + + class BinaryTreeNode: """Defining the structure of BinaryTreeNode""" @@ -43,7 +45,7 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return 25 60 """ - + if node is None: return None # traverse left subtree @@ -53,8 +55,9 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return # traverse right subtree inorder(node.right_child) -def make_tree()-> BinaryTreeNode | None: - + +def make_tree() -> BinaryTreeNode | None: + root = insert(None, 15) insert(root, 10) insert(root, 25) @@ -64,8 +67,9 @@ def make_tree()-> BinaryTreeNode | None: insert(root, 60) return root + def main(): - # main function + # main function root = make_tree() print("Printing values of binary search tree in Inorder Traversal.") inorder(root) From 7a93e2d0c4819c2a7fb23197b5ad913eac2feda5 Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 12:30:34 +0530 Subject: [PATCH 09/23] Update inorder_tree_traversal_2022.py --- .../binary_tree/inorder_tree_traversal_2022.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index c9023a23597b..881d8db7c2cd 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -5,6 +5,7 @@ """ + class BinaryTreeNode: """Defining the structure of BinaryTreeNode""" @@ -36,7 +37,7 @@ def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode: def inorder(node: None) -> BinaryTreeNode: # if node is None,return """ - >>> inorder(make()) + >>> inorder(make_tree()) 6 10 14 @@ -45,7 +46,7 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return 25 60 """ - + if node is None: return None # traverse left subtree @@ -55,9 +56,8 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return # traverse right subtree inorder(node.right_child) - -def make_tree() -> BinaryTreeNode | None: - +def make_tree()-> BinaryTreeNode | None: + root = insert(None, 15) insert(root, 10) insert(root, 25) @@ -67,9 +67,8 @@ def make_tree() -> BinaryTreeNode | None: insert(root, 60) return root - -def main(): - # main function +def main()-> None: + # main function root = make_tree() print("Printing values of binary search tree in Inorder Traversal.") inorder(root) From 2380410452c18d7d4fb5308aab9221f4a5847504 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 07:04:27 +0000 Subject: [PATCH 10/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../binary_tree/inorder_tree_traversal_2022.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 881d8db7c2cd..c310ecb63150 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -5,7 +5,6 @@ """ - class BinaryTreeNode: """Defining the structure of BinaryTreeNode""" @@ -46,7 +45,7 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return 25 60 """ - + if node is None: return None # traverse left subtree @@ -56,8 +55,9 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return # traverse right subtree inorder(node.right_child) -def make_tree()-> BinaryTreeNode | None: - + +def make_tree() -> BinaryTreeNode | None: + root = insert(None, 15) insert(root, 10) insert(root, 25) @@ -67,8 +67,9 @@ def make_tree()-> BinaryTreeNode | None: insert(root, 60) return root -def main()-> None: - # main function + +def main() -> None: + # main function root = make_tree() print("Printing values of binary search tree in Inorder Traversal.") inorder(root) From 98b78e63a06b5dfebf8497fed8b8dcd746428977 Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 12:50:40 +0530 Subject: [PATCH 11/23] Update inorder_tree_traversal_2022.py --- .../binary_tree/inorder_tree_traversal_2022.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index c310ecb63150..c413a5feba90 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -5,6 +5,7 @@ """ + class BinaryTreeNode: """Defining the structure of BinaryTreeNode""" @@ -14,7 +15,7 @@ def __init__(self, data: int) -> None: self.right_child = None -def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode: +def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode | None: # if binary search tree is empty, make a new node # and declare it as root if node is None: @@ -45,7 +46,7 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return 25 60 """ - + if node is None: return None # traverse left subtree @@ -55,9 +56,8 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return # traverse right subtree inorder(node.right_child) - -def make_tree() -> BinaryTreeNode | None: - +def make_tree()-> BinaryTreeNode | None: + root = insert(None, 15) insert(root, 10) insert(root, 25) @@ -67,9 +67,8 @@ def make_tree() -> BinaryTreeNode | None: insert(root, 60) return root - -def main() -> None: - # main function +def main()-> None: + # main function root = make_tree() print("Printing values of binary search tree in Inorder Traversal.") inorder(root) From 89568dd33a2f7d2e6c074cfc3d8a9617236bc93a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 07:21:33 +0000 Subject: [PATCH 12/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../binary_tree/inorder_tree_traversal_2022.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index c413a5feba90..b575ede49905 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -5,7 +5,6 @@ """ - class BinaryTreeNode: """Defining the structure of BinaryTreeNode""" @@ -46,7 +45,7 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return 25 60 """ - + if node is None: return None # traverse left subtree @@ -56,8 +55,9 @@ def inorder(node: None) -> BinaryTreeNode: # if node is None,return # traverse right subtree inorder(node.right_child) -def make_tree()-> BinaryTreeNode | None: - + +def make_tree() -> BinaryTreeNode | None: + root = insert(None, 15) insert(root, 10) insert(root, 25) @@ -67,8 +67,9 @@ def make_tree()-> BinaryTreeNode | None: insert(root, 60) return root -def main()-> None: - # main function + +def main() -> None: + # main function root = make_tree() print("Printing values of binary search tree in Inorder Traversal.") inorder(root) From 761d38f20657087154249cd5ac41879f5f303fc7 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Thu, 13 Oct 2022 09:26:02 +0200 Subject: [PATCH 13/23] Update data_structures/binary_tree/inorder_tree_traversal_2022.py --- .../binary_tree/inorder_tree_traversal_2022.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index b575ede49905..a9f75ee8051d 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -15,8 +15,17 @@ def __init__(self, data: int) -> None: def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode | None: - # if binary search tree is empty, make a new node - # and declare it as root + """ + If the binary search tree is empty, make a new node and declare it as root. + >>> node_a = BinaryTreeNode(12345) + >>> node_b = insert(node_a, 67890) + >>> node_a.left_child == node_b.left_child + True + >>> node_a.right_child == node_b.right_child + True + >>> node_a.data == node_b.data + False + """" if node is None: node = BinaryTreeNode(new_value) return node From bc286bf77cc1c69ed18210c366274939a2f02e71 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Thu, 13 Oct 2022 09:26:59 +0200 Subject: [PATCH 14/23] Update data_structures/binary_tree/inorder_tree_traversal_2022.py --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index a9f75ee8051d..9670fa04291a 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -25,7 +25,7 @@ def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode | None: True >>> node_a.data == node_b.data False - """" + """ if node is None: node = BinaryTreeNode(new_value) return node From 8808ece7b245ff19000577480b8459a3334856bb Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:35:11 +0530 Subject: [PATCH 15/23] Updated --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 9670fa04291a..9d42f61703ec 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -24,7 +24,7 @@ def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode | None: >>> node_a.right_child == node_b.right_child True >>> node_a.data == node_b.data - False + True """ if node is None: node = BinaryTreeNode(new_value) From 517b0e42ffae60a4b6b95a23e43063f307c407b7 Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:38:51 +0530 Subject: [PATCH 16/23] Updated --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 9d42f61703ec..07c7e593ba30 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -14,7 +14,7 @@ def __init__(self, data: int) -> None: self.right_child = None -def insert(node: BinaryTreeNode, new_value: int) -> BinaryTreeNode | None: +def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None: """ If the binary search tree is empty, make a new node and declare it as root. >>> node_a = BinaryTreeNode(12345) From 3be7962db91ef30cb7fccc465dd75d69ce3ed884 Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:48:10 +0530 Subject: [PATCH 17/23] Update inorder_tree_traversal_2022.py --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 07c7e593ba30..d0fdc5be43a9 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -43,7 +43,7 @@ def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None return node -def inorder(node: None) -> BinaryTreeNode: # if node is None,return +def inorder(node: None | BinaryTreeNode) -> BinaryTreeNode | None: # if node is None,return """ >>> inorder(make_tree()) 6 From ed23746817328b4123c999f4caaea43ca51609cf Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 08:19:35 +0000 Subject: [PATCH 18/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index d0fdc5be43a9..2ad371af1eb6 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -43,7 +43,9 @@ def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None return node -def inorder(node: None | BinaryTreeNode) -> BinaryTreeNode | None: # if node is None,return +def inorder( + node: None | BinaryTreeNode, +) -> BinaryTreeNode | None: # if node is None,return """ >>> inorder(make_tree()) 6 From 91a6a1a3634893cc0520506733ff7e1d5e321b9c Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 14:08:51 +0530 Subject: [PATCH 19/23] Update inorder_tree_traversal_2022.py --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 2ad371af1eb6..3acdf6fa37d5 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -14,7 +14,7 @@ def __init__(self, data: int) -> None: self.right_child = None -def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None: +def insert(node: None|BinaryTreeNode , new_value: int) -> BinaryTreeNode | None: """ If the binary search tree is empty, make a new node and declare it as root. >>> node_a = BinaryTreeNode(12345) @@ -43,9 +43,7 @@ def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None return node -def inorder( - node: None | BinaryTreeNode, -) -> BinaryTreeNode | None: # if node is None,return +def inorder(node: None | BinaryTreeNode) -> None: # if node is None,return """ >>> inorder(make_tree()) 6 From 48c43e85615396cccc1c100cb6289a9918205d1b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 08:39:46 +0000 Subject: [PATCH 20/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 3acdf6fa37d5..9831806bcbca 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -14,7 +14,7 @@ def __init__(self, data: int) -> None: self.right_child = None -def insert(node: None|BinaryTreeNode , new_value: int) -> BinaryTreeNode | None: +def insert(node: None | BinaryTreeNode, new_value: int) -> BinaryTreeNode | None: """ If the binary search tree is empty, make a new node and declare it as root. >>> node_a = BinaryTreeNode(12345) @@ -43,7 +43,7 @@ def insert(node: None|BinaryTreeNode , new_value: int) -> BinaryTreeNode | None: return node -def inorder(node: None | BinaryTreeNode) -> None: # if node is None,return +def inorder(node: None | BinaryTreeNode) -> None: # if node is None,return """ >>> inorder(make_tree()) 6 From be90c9484254c8461469e08afa4fbbb4db09e877 Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 16:32:18 +0530 Subject: [PATCH 21/23] Update data_structures/binary_tree/inorder_tree_traversal_2022.py Co-authored-by: Christian Clauss --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 9831806bcbca..9efa9c658135 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -10,11 +10,11 @@ class BinaryTreeNode: def __init__(self, data: int) -> None: self.data = data - self.left_child = None - self.right_child = None + self.left_child: BinaryTreeNode | None = None + self.right_child: BinaryTreeNode | None = None -def insert(node: None | BinaryTreeNode, new_value: int) -> BinaryTreeNode | None: +def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None: """ If the binary search tree is empty, make a new node and declare it as root. >>> node_a = BinaryTreeNode(12345) From 664bc2629be530a18f1bc41b25edee5af13e5b14 Mon Sep 17 00:00:00 2001 From: GURNEET SINGH <79376134+SinghGurneet21@users.noreply.github.com> Date: Thu, 13 Oct 2022 16:50:24 +0530 Subject: [PATCH 22/23] Updated and removed print statement removed the print from inorder function --- .../inorder_tree_traversal_2022.py | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 9efa9c658135..9b2f6d9adb65 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -43,26 +43,18 @@ def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None return node -def inorder(node: None | BinaryTreeNode) -> None: # if node is None,return +def inorder(node: None | BinaryTreeNode) -> list[int]: # if node is None,return """ >>> inorder(make_tree()) - 6 - 10 - 14 - 15 - 20 - 25 - 60 + [6, 10, 14, 15, 20, 25, 60] """ - - if node is None: - return None - # traverse left subtree - inorder(node.left_child) - # traverse current node - print(node.data) - # traverse right subtree - inorder(node.right_child) + if node: + inorder_array = inorder(node.left_child) + inorder_array = inorder_array + [node.data] + inorder_array = inorder_array + inorder(node.right_child) + else: + inorder_array = [] + return inorder_array def make_tree() -> BinaryTreeNode | None: From daed8d5c9f0ba10d44b737cfc5ad585ada4ccb6c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 11:23:10 +0000 Subject: [PATCH 23/23] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- data_structures/binary_tree/inorder_tree_traversal_2022.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_structures/binary_tree/inorder_tree_traversal_2022.py b/data_structures/binary_tree/inorder_tree_traversal_2022.py index 9b2f6d9adb65..08001738f53d 100644 --- a/data_structures/binary_tree/inorder_tree_traversal_2022.py +++ b/data_structures/binary_tree/inorder_tree_traversal_2022.py @@ -43,7 +43,7 @@ def insert(node: BinaryTreeNode | None, new_value: int) -> BinaryTreeNode | None return node -def inorder(node: None | BinaryTreeNode) -> list[int]: # if node is None,return +def inorder(node: None | BinaryTreeNode) -> list[int]: # if node is None,return """ >>> inorder(make_tree()) [6, 10, 14, 15, 20, 25, 60]