Skip to content
site-logo
  • Home
  • JavaScript
  • Machine Learning
  • C++Expand
    • C++ Programing
    • Numerical Techniques C++
    • Data Structures C++
    • C++ Programs
  • Typing Guide
  • Blogs
site-logo
Home / Data Structures C++ / Tree Traversal – Inorder Preorder Postorder C++ Program

Tree Traversal – Inorder Preorder Postorder C++ Program

ByLonz Updated onAugust 22, 2021
Data Structures C++
Tree Traversal
Ad
Table of contents
  1. What is Tree Traversal
    1. Basic Tree Structure
  2. Types of Tree Traversal
    1. In order traversal
    2. Pre order traversal
    3. Post order traversal
  3. C++ Program Tree Traversal

What is Tree Traversal

Tree Traversal is the method in which each node in the tree is visited exactly once in a systematic manner. So to access each node of a tree there are 3 traversal methods such as Inorder, PreOrder, and PostOrder.

For instance, you might want to find the sum of all values in the tree or find the largest and smallest value in a tree. For all these operations, you will need to visit each node of the tree.

Ad

Basic Tree Structure

The basic building block of a tree is the Structure, so define a basic structure as a node.

You need to assign a basic data type like int to store the value. Also declare two pointers as *Left and *Right which are the links to the child nodes or links to the left and right subtrees.

struct node {
int data;
struct node* left;
struct node* right;
}
Left & Right Sub Tree
Left & Right Sub Tree

The struct node pointed to by left and right might have other left and right children so we should always think of them as sub-trees instead of sub-nodes.

According to this structure, always consider every tree as a combination of a node carrying data and has left and right sub trees.


Types of Tree Traversal

  1. In Order
  2. Pre Order
  3. Post Order

Linear data structures such as Arrays, Linked Lists, Queues, and Stacks have only one pre-determined way to read the data.

But a hierarchical data structure like Trees and graphs can be traversed or visited in different ways.

In order traversal

Inorder Traversal is one the most used type of DFS (Depth First Search) Traversal of the tree.

  • First, visit all the nodes in the Left sub tree
  • Then visit the Root Node
  • Visit all the nodes in the Right sub tree
inorder(root->left)
display(root->data)
inorder(root->right)Code language: PHP (php)

Pre order traversal

  • First, Visit the Root Node.
  • Then, Visit all the nodes in the Left sub tree
  • Visit all the nodes in the Right sub tree
display(root->data)
preorder(root->left)
preorder(root->right)Code language: PHP (php)

Post order traversal

  • First, Visit all the nodes in the Left sub tree
  • Visit all the nodes in the Right sub tree
  • At Last, Visit the Root Node
postorder(root->left)
postorder(root->right)
display(root->data)Code language: PHP (php)

C++ Program Tree Traversal

// C++ program tree traversals
#include <iostream>
using namespace std;

struct Node {
	int data;
	struct Node *left, *right;
	Node(int data)
	{
		this->data = data;
		left = right = NULL;
	}
};

/* postorder traversal. */

void printPostorder(struct Node* node)
{
	if (node == NULL)
		return;

	// first recur on left subtree
	printPostorder(node->left);

	// then recur on right subtree
	printPostorder(node->right);

	// now deal with the node
	cout << node->data << " ";
}

/* inorder*/

void printInorder(struct Node* node)
{
	if (node == NULL)
		return;

	/* first recur on left child */
	printInorder(node->left);

	/* then print the data of node */
	cout << node->data << " ";

	/* now recur on right child */
	printInorder(node->right);
}

/* preorder*/

void printPreorder(struct Node* node)
{
	if (node == NULL)
		return;

	/* first print data of node */
	cout << node->data << " ";

	/* then recur on left sutree */
	printPreorder(node->left);

	/* now recur on right subtree */
	printPreorder(node->right);
}

int main()
{
	struct 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);

	cout << "\nPreorder traversal of binary tree is \n";
	printPreorder(root);

	cout << "\nInorder traversal of binary tree is \n";
	printInorder(root);

	cout << "\nPostorder traversal of binary tree is \n";
	printPostorder(root);

	return 0;
}
Code language: PHP (php)

Post navigation

Previous Previous
Tree Data Structure | Tree Terminologies | Tree Traversal
NextContinue
What Is Binary Tree | Types Of Binary Trees With C++ Program
Search

  • Home
  • Privacy Policy
  • Disclaimer
  • Sitemap
  • Write for us
  • Contact Us

Copyright © 2025 TechInDetail

Scroll to top
  • Home
  • JavaScript
  • Machine Learning
  • C++
    • C++ Programing
    • Numerical Techniques C++
    • Data Structures C++
    • C++ Programs
  • Typing Guide
  • Blogs
Search