// C program for different tree traversals
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node* left;
struct node* right;
};
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);
}
void printPreorder(struct node* node)
{
if (node == NULL)
return;
/* first print data of node */
printf("%d ", node->data);
/* then recur on left subtree */
printPreorder(node->left);
/* now recur on right subtree */
printPreorder(node->right);
}
int main()
{
struct node* root = newNode(11); //root
root->left = newNode(12);
root->right = newNode(13);
root->left->left = newNode(14);
root->left->right = newNode(15);
root->right->left = newNode(16);
root->right->right = newNode(17);
printf("\nPreorder traversal of binary tree is \n");
printPreorder(root);
return 0;
}