PREORDER TRAVERSAL

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

struct node
{
 int data;
 struct node* left;
 struct node* right;
};

void preorder(struct node* root)
{
if(root == NULL) return;
printf("%d\n",root->data);
preorder(root->left);
preorder(root->right);
}
struct node* newnode(int data)
{
 struct node* newnode = (struct node*)malloc(sizeof(struct node));
 newnode->data = data;
 newnode->left = NULL;
 newnode->right = NULL;
 return newnode;
}

struct node* insert(struct node* root , int data)
{
 if(root == NULL)
 {
  root = newnode(data);
  return root;
 }
 else if(data <= root->data)
 {
  root->left = insert(root->left,data);
 }
 else{
  root->right= insert(root->right,data);
 }
 return root;
}

int main()
{
 int n;
 struct node* root = NULL;
 root = insert(root,20);
 struct node* main_root = root;
 root = insert(root,15);
 root = insert(root,25);
 preorder(main_root);
 return 0;
}


SAME MUST BE DONE FOR INORDER AND POSTORDER.

Comments