HomeProgramsProgram to find in PreOrder, PostOrder and InOrder tree traversals

# Program to find in PreOrder, PostOrder and InOrder tree traversals

Program to find in PreOrder, PostOrder and InOrder tree traversals in c language

``````
#include <stdio.h>
#include <stdlib.h>

/* A binary tree node has data, pointer to left child
and a pointer to right child */
struct node {
int data;
struct node* left;
struct node* right;
};

/* Helper function that allocates a new node with the
given data and NULL left and right pointers. */
struct node* newNode(int data)
{
struct node* node
= (struct node*)malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;

return (node);
}

/* Given a binary tree, print its nodes according to the
"bottom-up" 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
printf("%d ", node->data);
}

/* Given a binary tree, print its nodes in inorder*/
void printInorder(struct node* node)
{
if (node == NULL)
return;

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

/* then print the data of node */
printf("%d ", node->data);

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

/* Given a binary tree, print its nodes in preorder*/
void printPreorder(struct node* node)
{
if (node == NULL)
return;

/* first print data of node */
printf("%d ", node->data);

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

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

/* Driver program to test above functions*/
int main()
{
struct node* root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);

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

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

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

getchar();
return 0;
}

``````

## Output

``````Preorder traversal of binary tree is
1 2 4 5 3
Inorder traversal of binary tree is
4 2 5 1 3
Postorder traversal of binary tree is
4 5 2 3 1``````

## List of Top Interview Programs

program to Print Hello World – SOLUTION

print Fibonacci Series in C – SOLUTION

prime number Program – SOLUTION

Check Palindrome number program – SOLUTION

Armstrong number program – SOLUTION

Factorial of a number Program – SOLUTION

How to Reverse String in Java – SOLUTION

Programs for printing pyramid patterns – SOLUTION

Check Leap Year or Not – SOLUTION

program to Binary search – SOLUTION

Implement traverse a Binary tree in Preorder in Java using Recursion – SOLUTION

find GCD of two numbers program – SOLUTION

Write a program to find Merge Sort Program in C – SOLUTION

RELATED ARTICLES