#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <stack>
using namespace std;
typedef struct node {
int data;
struct node* left;
struct node* right;
}Node;
void preorder(Node* node)
{
if(node != NULL){
cout<<node->data<<endl;
preorder(node->left);
preorder(node->right);
}
}
void inorder(Node* node)
{
if(node != NULL){
preorder(node->left);
cout<<node->data<<endl;
preorder(node->right);
}
}
void outorder(Node* node)
{
if(node != NULL){
preorder(node->left);
preorder(node->right);
cout<<node->data<<endl;
}
}
int main()
{
Node n1;
Node n2;
Node n3;
Node n4;
n1.data =5;
n2.data=6;
n3.data=7;
n4.data=8;
n1.left=&n2;
n1.right=&n3;
n2.left=&n4;
n2.right=NULL;
n3.left=NULL;
n3.right=NULL;
n4.left=NULL;
n4.right=NULL;
cout<<"preorder"<<endl;
preorder(&n1);
cout<<"inorder"<<endl;
inorder (&n1);
cout<<"outorder"<<endl;
outorder(&n1);
}