Arunvijay28 / Java-Programs

0 stars 14 forks source link

Implemented Tree Traversals #19

Closed Heet-Patel-5304 closed 1 month ago

Heet-Patel-5304 commented 1 month ago

Description Summary

This code implements a basic binary tree in Java with four traversal methods: InOrder, PreOrder, PostOrder, and Level Order. Each method explores the binary tree in a different order, showcasing different ways to visit and process the nodes.

Traversal Methods:

1. InOrder Traversal (Left - Node - Right):

Visits the left subtree, processes the current node, and then visits the right subtree. Typically used when you want the nodes in ascending order (for binary search trees).

2. PreOrder Traversal (Node - Left - Right):

Processes the current node first, then recursively traverses the left subtree and right subtree. Often used for creating a copy of the tree or to get a prefix expression of an expression tree.

3. PostOrder Traversal (Left - Right - Node):

Recursively traverses the left and right subtrees first, and then processes the current node. Useful for deleting trees or evaluating a postfix expression.

4. Level Order Traversal (Breadth-First Search):

Traverses the tree level by level from left to right, utilizing a queue to store nodes. It’s commonly used to get the nodes in order of their level or when breadth-first search is required.

Code Structure:

Node Class: Represents a node in the binary tree, with data, left, and right properties. buildTree Method: Recursively constructs the binary tree from user input. Enter -1 for null nodes. Traversal Methods: Each traversal method (inOrder, preOrder, postOrder, and levelOrderTraversal) processes nodes in its respective order.

Testing:

The code can be tested interactively through a terminal or console by following these steps:

Example 1:

Example Input: 4 2 1 -1 -1 3 -1 -1 6 5 -1 -1 7 -1 -1 Expected Output: 4 2 1 3 6 5 7

Example 2:

Example Input: 1 2 3 -1 -1 -1 Expected Output: 1 2 3

Example 3:

Example Input: 5 3 2 -1 -1 4 -1 -1 8 7 -1 -1 9 -1 -1 Expected Output:`5 3 2 4 8 7 9

Example 4:

Example Input: -1 Expected Output: (no output, representing an empty tree)

Example 5:

Example Input: 1 -1 2 -1 -1 3 -1 -1 Expected Output: 1 2 3

These test cases cover a variety of tree structures and include edge cases like an empty tree. Let me know if you need any further modifications!