cplusplus
cplusplus

 

Introduction

Binary Tree Traversal is a method to visit all the nodes of a binary tree in a particular order. Traversal algorithms are fundamental in tree-based structures, and they are often used in many applications like searching, sorting, and graph traversal. In a binary tree, each node has at most two children, referred to as the left and right children.

In this tutorial, we will explore three main types of tree traversal techniques:

  • In-order Traversal: Visit the left subtree, then the root node, and finally the right subtree.
  • Pre-order Traversal: Visit the root node first, then the left subtree, and finally the right subtree.
  • Post-order Traversal: Visit the left subtree first, then the right subtree, and finally the root node.

In this article, we will implement these traversal algorithms in C++.

Objective

The objective of this exercise is to implement and demonstrate the three main binary tree traversal algorithms using C++. These algorithms will be implemented recursively, and the program will print the nodes in different traversal orders. By the end of this tutorial, you will have a clear understanding of binary tree traversal techniques and how to apply them in C++ programs.

Code Implementation

#include 
using namespace std;

// Definition for a binary tree node
struct Node {
    int data;
    Node* left;
    Node* right;
    Node(int value) : data(value), left(nullptr), right(nullptr) {}
};

// In-order Traversal: Left -> Root -> Right
void inOrderTraversal(Node* root) {
    if (root == nullptr) {
        return;
    }
    inOrderTraversal(root->left);
    cout << root->data << " "; inOrderTraversal(root->right);
}

// Pre-order Traversal: Root -> Left -> Right
void preOrderTraversal(Node* root) {
    if (root == nullptr) {
        return;
    }
    cout << root->data << " "; preOrderTraversal(root->left);
    preOrderTraversal(root->right);
}

// Post-order Traversal: Left -> Right -> Root
void postOrderTraversal(Node* root) {
    if (root == nullptr) {
        return;
    }
    postOrderTraversal(root->left);
    postOrderTraversal(root->right);
    cout << root->data << " "; } int main() { // Creating a sample binary tree Node* root = new Node(1); root->left = new Node(2);
    root->right = new Node(3);
    root->left->left = new Node(4);
    root->left->right = new Node(5);

    // Performing different tree traversals
    cout << "In-order Traversal: ";
    inOrderTraversal(root);
    cout << endl;

    cout << "Pre-order Traversal: ";
    preOrderTraversal(root);
    cout << endl;

    cout << "Post-order Traversal: ";
    postOrderTraversal(root);
    cout << endl;

    return 0;
}

Program Explanation

The C++ program defines a simple binary tree structure with a class representing each node. Each node has a value and two pointers, left and right, which point to the left and right children respectively.

We then implement three functions to perform the tree traversals:

  • inOrderTraversal(Node* root): This function visits the left subtree first, then prints the root data, and finally visits the right subtree.
  • preOrderTraversal(Node* root): This function prints the root data first, then traverses the left and right subtrees.
  • postOrderTraversal(Node* root): This function first traverses the left and right subtrees, and then prints the root data.

In the main() function, we create a binary tree manually by allocating memory for each node and linking them together. Then, we call the three traversal functions to print the nodes in different orders: in-order, pre-order, and post-order.

How to Run the Program

To run this C++ program, follow these steps:

    1. Open a text editor (like Visual Studio Code, Sublime Text, or Notepad++) and paste the code provided above.
    2. Save the file with a .cpp extension, for example, BinaryTreeTraversal.cpp.
    3. Open a terminal or command prompt window.
    4. Navigate to the directory where your file is saved.
    5. Compile the program using a C++ compiler. For example, with g++, you can run the following command:
g++ -o BinaryTreeTraversal BinaryTreeTraversal.cpp
    1. After compilation, execute the program using the command:
./BinaryTreeTraversal
  1. You should see the output for the three traversal methods displayed in the console.
© 2025 Learn Programming. All Rights Reserved.

 

By Aditya Bhuyan

I work as a cloud specialist. In addition to being an architect and SRE specialist, I work as a cloud engineer and developer. I have assisted my clients in converting their antiquated programmes into contemporary microservices that operate on various cloud computing platforms such as AWS, GCP, Azure, or VMware Tanzu, as well as orchestration systems such as Docker Swarm or Kubernetes. For over twenty years, I have been employed in the IT sector as a Java developer, J2EE architect, scrum master, and instructor. I write about Cloud Native and Cloud often. Bangalore, India is where my family and I call home. I maintain my physical and mental fitness by doing a lot of yoga and meditation.

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)