diff --git a/Python/Binary_Tree.py b/Python/Binary_Tree.py new file mode 100644 index 0000000..34b23c3 --- /dev/null +++ b/Python/Binary_Tree.py @@ -0,0 +1,26 @@ +class TreeNode: + def __init__(self, data): + self.data = data + self.left = None + self.right = None + +class BinaryTree: + def __init__(self): + self.root = None + + def inorder_traversal(self, node): + if node: + self.inorder_traversal(node.left) + print(node.data, end=" ") + self.inorder_traversal(node.right) + +# Example usage +tree = BinaryTree() +tree.root = TreeNode(1) +tree.root.left = TreeNode(2) +tree.root.right = TreeNode(3) +tree.root.left.left = TreeNode(4) +tree.root.left.right = TreeNode(5) + +print("In-order Traversal:") +tree.inorder_traversal(tree.root) # Output: 4 2 5 1 3 diff --git a/Python/Fibonacci_series_with_classes.py b/Python/Fibonacci_series_with_classes.py new file mode 100644 index 0000000..bc69246 --- /dev/null +++ b/Python/Fibonacci_series_with_classes.py @@ -0,0 +1,26 @@ +class Fibonacci: + def __init__(self): + self.memo = {} # Dictionary to store calculated Fibonacci numbers for optimization + + def calculate(self, n): + # Base cases + if n <= 0: + return 0 + elif n == 1: + return 1 + + # Check if Fibonacci number is already calculated + if n in self.memo: + return self.memo[n] + + # Calculate the Fibonacci number and store it in the dictionary (memoization) + self.memo[n] = self.calculate(n-1) + self.calculate(n-2) + return self.memo[n] + + def print_series(self, count): + for i in range(count): + print(self.calculate(i), end=" ") + +# Example usage +fib = Fibonacci() +fib.print_series(10) # Output: 0 1 1 2 3 5 8 13 21 34