From 3d2fb1a35a93bd303281c3b1e13878c9199e89b9 Mon Sep 17 00:00:00 2001 From: Arnav Thakare <91930603+Arnavthakare19@users.noreply.github.com> Date: Sun, 8 Oct 2023 00:50:55 +0530 Subject: [PATCH] Added binary tree generator --- .../treegenerator.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 B/Random Binary Tree Generator/treegenerator.py diff --git a/B/Random Binary Tree Generator/treegenerator.py b/B/Random Binary Tree Generator/treegenerator.py new file mode 100644 index 00000000..83c198ee --- /dev/null +++ b/B/Random Binary Tree Generator/treegenerator.py @@ -0,0 +1,40 @@ +import random + + +class Node: + def __init__(self, value): + self.value = value + self.left = None + self.right = None + +def generate_random_binary_tree(size): + if size == 0: + return None + + # Choose random sizes for left and right subtrees + left_size = random.randint(0, size-1) + right_size = size - 1 - left_size + + # Generate left and right subtrees recursively + left_subtree = generate_random_binary_tree(left_size) + right_subtree = generate_random_binary_tree(right_size) + + # Create new node with random value + root = Node(random.randint(0, 100)) + + # Assign left and right subtrees to children + root.left = left_subtree + root.right = right_subtree + + return root + + +def print_tree(node, level=0): + if node is not None: + print_tree(node.right, level + 1) + print(" " * 4 * level + "->", node.value) + print_tree(node.left, level + 1) + + +tree = generate_random_binary_tree(input('Enter the size of binary tree')) +print_tree(tree) \ No newline at end of file